Numpy基础使用

numpy.ndarray:

创建

  • numpy.ndarray中所有元素必须是同一类型,否则会自动向下转换:int—>float—>str

  • 创建方式

 

  np.array([[1, 3, 5], [2, 4, 6]], dtype=np.int) 
  np.asarray(ndarray, dtype=np.object)
  np.arange(0, 100, 10)
  np.random.rand(3, 2)
  np.random.randint(10, 20, size=(3, 2))
  np.linspace(0, 10, 10)
  np.logspace(0, 1, 5)
  np.r_[0:10:2]
  np.c_[0:5:1]
  np.zeros((2, 3))
  np.ones((5, 2))
  np.zeros_like(a)
  np.ones_like(a)
  a = np.empty((3, 3))
  a.fill(1)
  np.identity(5)

 

属性与方法

  • 常用属性

 

  ndarray.shape  # 形状
  ndarray.dtype # 数据类型
  ndarray.size # 元素个数
  ndarray.ndim # 数据维度

 

  • 常用方法

  • # 深拷贝
    ndarray.copy()

    # 数值计算
    ndarray.min/max(axis=None) # 最小/大值
    ndarray.argmin/argmax(axis=None) # 最小/大值索引
    ndarray.sum(axis=None) # 累加
    ndarray.prod(axis=None) # 累乘
    ndarray.mean(axis=None) # 平均值
    ndarray.std(axis=None) # 标准差
    ndarray.var(axis=None) # 方差
    ndarray.clip(min, max) # 修剪
    ndarray.round(decimals=0) # 四舍五入

索引与切片

  • 数值索引

 

  ndarray[2:, :-1]
  ndarray[[2, 4, 6], [1, 3, 5]]
  ndarray[np.where(ndarray > 10)]

 

  • bool索引:ndarray[bool_ndarray]

 

  # bool_ndarray的获取
  # 运算
  ndarray > 10
  ndarray1 == ndarray2
  # 逻辑运算
  np.logical_and(ndarray1, ndarray2)
  np.logical_or(ndarray1, ndarray2)

 

运算

  • 数值运算

 

  np.sum(ndarray, axis=None)
  • 矩阵运算

  np.multiply(ndarray, ndarray) # 对应位置元素相乘
  np.dot(ndarray, ndarray) # 矩阵乘法

 

  • 排序

 

  np.sort(ndarray, axis=-1)np.argsort(ndarray, axis=-1)
  np.searchsorted(a, v, side='left') # v中元素插入a后的位置索引
  np.lexsort(keys, axis=None)  

  • 数组形状操作

 

ndarray.shape = 2, 5    # 直接修改
ndarray[np.newaxis, :] # 增加维度
ndarray.squeeze() # 压缩多余维度
ndarray.transpose() # 转置
ndarray.T # 转置

 

  • 数组拼接

np.concatenate((ndarray, ndarray), axis=None) # 拼接,默认axis等同于垂直堆放np.stack((ndarray, ndarray)) # 堆放
np.hstack((ndarray, ndarray)) # 水平堆放
np.vstack((ndarray, ndarray)) # 垂直堆放

  • 随机模块

 

  np.random.rand(3, 2) # 0-1之间随机小数填充,shape=3, 2

 

 

  np.random.randint(low, high=None, size=None, dtype=None) # 随机整数填充,shape=size

 

 

  np.normal(loc=0.0, scale=1.0, size=None) # 高斯正态分布

 

 

  np.random.shuffle(ndarray) # 打乱、洗牌

 

 

  np.set_printoptions(precision=2) # 设置小数位

 

 

  np.random.seed(100) # 指定随机种子,可以随机出相同结果

 

  • 文件操作

  np.savetxt('test.txt', ndarray, fmt='%d', delimiter=',')

  np.loadtxt('test.txt', delimiter=',', skiprows=1)np.save('test.npy', ndarray)

  np.load('test.npy')

 

posted @ 2020-05-23 21:55  雅痞六爷  阅读(160)  评论(0)    收藏  举报