1. 简介
    1. 操作
      1. 数据的算数和逻辑运算
      2. 傅里叶转换和用于图形曹祖
      3. 线性代数
  2. ndarray对象
    1. 示例1
      1. import numpy as np a=n.array([1,2,3] print(a))
    2. 示例2
      1. import numpy as np a=np.array([[1,2,3],[4,5,6]]) print(a)
    3. 示例3
      1. import numpy as np a=np.array([1,2,3,],ndmin=2) print()a
    4. 示例4
    5. 数据类型 ndarray
      1. **ndarray ** 对象由计算机内存中的一维连续区域组成,带有将每个元素映射到内存块中某个位置的索引方案。 内存块以按行(C 风格)或按列(FORTRAN 或 MatLab 风格)的方式保存元素。
    6. 创建 np.array()
      1. object
        1. 可迭代序列
      2. dtype
        1. 数据类型
      3. copy
        1. 对象是否可以复制
      4. order
        1. C行F列A
      5. subok
      6. ndmin
        1. 返回数组的最小维数
  3. 数据类型
    1. bool
    2. int
    3. intc
    4. intp
    5. int8
    6. int16
    7. int32
    8. int64
    9. uint8 16 32 64
    10. float64
    11. 数据类型
    12. 数据大小
    13. 字节序
    14. 内存块
    15. 数据类型修改
      1. 一种是定义数组的时候指定类型 np.array(dtype="flaot64")
      2. 另一种是 数组。dtype(数据类型)
  4. 数组属性
    1. ndarray.shape
      1. 数组属性返回一个包含数组维度的元组,可以调节数组大小
      2. 示例1
        1. shape 返回数组维度
      3. 示例2
        1. reshape 修改数组维度
    2. ndarray.ndim
      1. 返回数组的维数
    3. ndarray.itemsiz
      1. 返回数组种每个元素的字节单位长度
      2. 比如数组类型微int8,,一个字节,浮点数 四个字节
    4. ndarray.flags
  5. 数组创建历程
    1. np.empty()
      1. shape
        1. 维度
      2. dtype
        1. 类型
      3. order
        1. 风格
      4. 数组元素为随机值
    2. np.zeros()
    3. np.ones()
  6. 来自现有数据的数组
    1. np.asarray
      1. a
        1. 现有数组
      2. dtype
        1. 类型
      3. order
        1. 风格
    2. np.frombuffer
      1. 此函数将缓冲区解释为一维数组,暴露缓冲区接口的任何对象都用作参数来返回ndarry
    3. np.fromiter
      1. iterable
        1. 任何可迭代对象
      2. dtype
        1. 返回数组的数据类型
      3. count=-1
        1. 需要读取的数据数量,默认为-1 读取所有数据
  7. 来着数值范围的数组
    1. np.arange()
      1. start
        1. 范围的起始值 默认为0
      2. stop
        1. 范围的终止值
      3. step
        1. 两个值的间隔
      4. dtype
        1. 数据类型
    2. np.linspace()
      1. start
        1. 起始值
      2. stop
        1. 终止值
      3. num
        1. 要生成的间隔样例数量,,默认50
          1. 子主题 1
      4. endpoint
        1. 序列种是否包含stop值
      5. retstep
        1. 如果为true,返回样例,以及连续数字之间的步长
      6. dtype
    3. np.logspace
      1. 返回一个ndarray对象,其中包含在对数刻度上均匀分布得数字,刻度得开始和结束端点事某个底数得幂
      2. start
      3. stop
      4. endponint
      5. base
      6. dtype
  8. 切片和索引
    1. 三种可用得索引方法类型
      1. 字段访问
      2. 基本切片
        1. slice
          1. start
          2. 索引起始和结束
          3. stop
          4. step
          5. 步长
        2. 示例一
          1. import numpy as np a = np.arange(10) s = slice(2,7,2) print a[s]
        3. 示例二
          1. import numpy as np a = np.arange(10) b = a[2:7:2] print b
        4. 示例三
          1. # 对单个元素进行切片 import numpy as np a = np.arange(10) b = a[5] print b
        5. 示例四
          1. # 对始于索引的元素进行切片 import numpy as np a = np.arange(10) print a[2:]
        6. 示例五
          1. # 对索引之间的元素进行切片 import numpy as np a = np.arange(10) print a[2:5]
        7. 示例六
          1. import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print a # 对始于索引的元素进行切片 print '现在我们从索引 a[1:] 开始对数组切片' print a[1:]
      3. 高级索引
        1. 整数索引
          1. import numpy as np x = np.array([[1, 2], [3, 4], [5, 6]]) y = x[[0,1,2], [0,1,0]] print y
          2. import numpy as np x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) print '我们的数组是:' print x print '\n' # 切片 z = x[1:4,1:3] print '切片之后,我们的数组变为:' print z print '\n' # 对列使用高级索引 y = x[1:4,[1,2]] print '对列使用高级索引来切片:' print y
        2. 布尔索引
          1. import numpy as np x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) print '我们的数组是:' print x print '\n' # 现在我们会打印出大于 5 的元素 print '大于 5 的元素是:' print x[x > 5]
          2. import numpy as np a = np.array([np.nan, 1,2,np.nan,3,4,5]) print a[~np.isnan(a)]
  9. numpy 广播
    1. 是指numpy在算术运算期间处理不同形状得数组得能力,如果两个阵列具有完全相同得形状,则这些操作被无缝执行
    2. 数组拥有相同形状
    3. 数组拥有相同得维数,每个维度拥有相同长度,或者长度为1
    4. 数组拥有极少得维度,可以在其前面追加长度为1得维度
  10. 数组上的迭代
    1. numpy包含一个迭代器对象mditer,是一个有效的多维迭代器对象,
      1. import numpy as np a = np.arange(0,60,5) a = a.reshape(3,4) print '原始数组是:' print a print '\n' print '修改后的数组是:' for x in np.nditer(a): print x,
    2. 修改数组的值
      1. import numpy as np a = np.arange(0,60,5) a = a.reshape(3,4) print '原始数组是:' print a print '\n' for x in np.nditer(a, op_flags=['readwrite']): x[...]=2*x print '修改后的数组是:' print a
  11. 数组操作
    1. 修改形状
      1. reshape不改变数组的条件下修改形状
        1. arr 要修改形状的数组
        2. newshape 整数或者整数数组,新的形状应当兼容原有形状
        3. order
      2. flat 数组上的一维迭代器
      3. flatten
        1. 返回折叠为一维的数组副本
      4. ravel
    2. 翻转操作
      1. transpose
      2. np。T
      3. rollaxis向后滚动指定的轴
        1. arr 输入数
        2. axis 要向后滚动的轴,其他轴的相对位置不会改变
        3. start 默认为零,表示完整的滚动,会滚动到指定位置
      4. swapaxes互换数组的两个轴
    3. 修改维度
      1. bradcast 产生模仿广播的对象
      2. broadcast_to将数组广播到新形状
      3. expand_dims 扩展数组的形状
      4. squeeze 从数组的形状中删除丹维条码
    4. 数组的链接
      1. concatenate 沿着现存的轴连接数据序列
        1. 连接相同形状的两个或者多个数组
      2. stack 沿着新轴连接数组序列
      3. hstack 水平堆叠序列中的数组,列方向
      4. vstack 行方向
    5. 数组分割
      1. split
        1. arr 被分割的输入数组
        2. indices_or_sections 可以是整数,表明要从输入数组创建的,
      2. hsplit
      3. vsplit
    6. 添加/删除元素
      1. resize 返回指定形状的新数组
        1. 返回指定大小的新数组,如果新大小大于源是大小,则包含原始数组中元素的重复副本
      2. append 将值添加到数组末尾
        1. 在输入数组的末尾添加值,附加操作不是原地的,二十分配新的数组
      3. insert 沿着指定轴将值插入到指定下标之前
        1. arr输入数组
        2. obj在其之前插入的值的索引
        3. values 要插入的值
        4. axis 沿着它插入的轴
      4. delete 返回删掉某个轴的子数组的新数组
      5. unique 寻找数组内唯一元素
  12. 字符串函数
    1. add() 返回两个str数组的组个字符串连接
    2. multiply 返回按元素多重连接后的字符串
    3. center 返回给定字符串的副本,
    4. capitalize 返回给定字符串的副本,其中只有第一个字符串大写
    5. title
    6. lower 元素转换为小写
    7. uppper
    8. split()
    9. splitline()
    10. strip()
    11. join()
    12. replace()
    13. decode()
    14. ecode()
  13. 算数函数
    1. 三角函数
    2. 舍入函数
      1. around()四舍五入
      2. floor()此函数返回不大于输入参数的最大整数
      3. ceil 向上取整
  14. 算数运算
    1. add
    2. subtract
    3. multiply
    4. divide
    5. reciprocal 倒数
    6. power 幂数
    7. mod() 返回余数
  15. 统计函数
    1. amin() 返回指定轴的最小值
    2. amax 返回指定轴的最大值
    3. ptp() 返回指定值的最大值和最小值
    4. median()中值定义为将数据样本的上半部分和下半部分分开的值
    5. mean()
    6. average()
    7. 标准差 std = sqrt(mean((x - x.mean())**2))
      1. std()
    8. 方差 var
  16. 排序、搜索、计数函数
    1. sort()
      1. a,要排序的数组
      2. axis 沿着什么轴
      3. kind,默认快速排序
      4. order 如果数组包含字段,则是要排序的字段
    2. argsort()
    3. lexsort()返回一个索引数组
    4. argmax()
      1. 返回最大值的索引
    5. argmin()
      1. 返回最小值的索引
    6. nonzero()
      1. 返回输入数组中非零元素的索引
    7. where()
      1. 返回输入数组中满足给定条件的元素索引
    8. extract
      1. 返回满足任何条件的元素
    9. 拷贝
      1. 深浅拷贝
  17. 矩阵库
    1. empty()
    2. zeros()
    3. ones()
    4. eye()
    5. identity()
      1. 返回给定大小的单位矩阵,
    6. rand()
      1. 返回给定大小的随机数数组
  18. 线性代数
    1. dot()
      1. 两个矩阵的点积
    2. vdot()
      1. 返回两个向量的点积
    3. inner()
      1. 返回一维数组的向量内积
    4. matmul()
    5. determinant()
    6. solve
    7. inv