美文网首页我爱编程
利用Python进行数据分析-读书笔记(1)

利用Python进行数据分析-读书笔记(1)

作者: ctripkai | 来源:发表于2018-04-11 20:44 被阅读0次

    本书2017年10月20日出版,英文名为《Python for Data Analysis, 2nd Edition》,英文在线:pydata-book
    中文在线:https://www.jianshu.com/p/a380222a3292
    本系列读书笔记基本只是简略记下书中要点,引用图片包括大部分来自中文链接博客,少量自己用IPython运行截图;仅作为在遗忘时翻阅之用。

    4.1 ndarry / 多维数组对象

    主要内容:
    %time 和 %timeit
    np.random.randn 和 np.random.rand
    不建议使用from numpy import *
    arr.shape 表示维度大小的元祖
    arr.dtype 数组数据类型
    np.array(XXX) 创建ndarray对象,单序列→numpy数组,嵌套序列→多维数组
    arr.ndim 数组arr维度值
    一般np.array会尝试为新建的数组推断出一个合适的数据类型(dtype)
    np.zeros(X) np.zeros((X,Y)) 下同 np.ones np.empty
    np.empty大多数情况返回的是未初始化的垃圾值,而非全0
    np.arange(X)
    np.asarray(X)
    np.ones_like(X) np.zeros_like(X) np.empty_like(X)
    np.full np.full_like
    np.eye(X) np.identity(X)
    arr.astype(np.float64) 转换dtype 浮点数转换整数小数部分会被截取
    astype也可以将数字字符串列表转换为数字列表,如
    np.array(['1.25', '-9.6', '42'], dtype=np.string_) → array([ 1.25, -9.6 , 42. ])
    维度相等的数组之间的任何算术运算都将应用到元素级
    数组与标量运算会将标量值传播到各个元素
    维度相等的数组之间的比较大小会生成布尔数组
    切片
    将一个标量值赋值给一个切片,该值会自动传播到整个选区
    数组切片是原始数组的视图,视图上的任何改变都会直接反映到数组上
    arr.copy() 创建一份数组arr的副本而非视图
    axis = 0 对行处理
    高维数组切片
    布尔型索引
    names = np.array(['Bob', 'Joe', 'Will', 'Bob', 'Will', 'Joe', 'Joe'])
    data = np.random.randn(7, 4)
    data[names == 'Bob', 2:]
    data[~(names == 'Bob')]
    and和or在布尔型数组中无效。要使用&与|
    data[ (names == 'Bob') | (names == 'Will')]
    data[data < 0] = 0 将data中负值设为0
    二维数组arr花式索引
    arr[[4, 3, 0, 6]]
    arr[[-3, -5, -7]]
    arr[[1, 5, 7, 2], [0, 3, 1, 2]] 返回一维数组,其中的元素对应各个索引元组
    arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]] 返回矩阵子区域
    arr[:,[3,1,2]] 返回三列
    arr.T
    np.dot(arr1, arr2)
    高维数组,transpose需要得到一个由轴编号组成的元组才能对这些轴进行转置
    arr.reshape(X,Y)
    swapaxes方法,它需要接受一对轴编号

    下一篇对个别方法和函数做稍微深入一些探究,包括:
    待续……

    相关文章

      网友评论

        本文标题:利用Python进行数据分析-读书笔记(1)

        本文链接:https://www.haomeiwen.com/subject/ejizhftx.html