【Python数据科学】Numpy速查

【Python数据科学】Numpy速查

Numpy是python数据科学计算的核心库,提供高性能的多维数组对象及处理数组的工具。

  • 使用以下语句导入Numpy库:
import numpy as np

Numpy数组
【Python数据科学】Numpy速查

1 创建数组

a = np.array([1,2,3])
b = np.array([(1.5,2,3), (4,5,6)], dtype = float)
c = np.array([[(1.5,2,3), (4,5,6)], [(3,2,1), (4,5,6)]], dtype = float)

2 初始化占位符

np.zeros((3,4))                          #创建值为0的数组
np.ones((2,3,4), dtype = np.int16)       #创建值为1的数组
d = np.arange(10,25,5)                   #创建均匀间隔的数组(步进值)
np.linspace(0,2,9)                       #创建均匀间隔的数组(样本数)
e = np.full((2,2),7)                     #创建常熟数组
f = np.eye(2)                            #创建2x2单位矩阵
np.random.random((2,2))                  #创建随机值的数组
np.empty((3,2))                          #创建空数组

3 输入/输出

  • 保存与载入磁盘上的文件
np.save(‘my_array‘, a)
np.savez(‘array.npz‘, a, b)
np.load(‘my_array.npy‘)
  • 保存与载入文本文件
np.loadtxt("myfile.txt")
np.genfromtxt("my_file.csv", delimiter=‘,‘)
np.savetxt("myarray.txt", a, delimiter=" ")

4 数据类型

np.int64                        #带符号的64位整数
np.float32                      #标准双精度浮点数
np.complex                      #显示为128位浮点数的复数
np.bool                         #布尔值:True值和False值
np.object                       #Python对象
np.string_                      #固定长度字符串
np.unicode_                     #固定长度Unicode

5 数组信息

a.shape                     #数组形状,几行几列
len(a)                      #数组长度
b.ndim                      #数组维度
e.size                      #数组元素个数
b.dtype                     #数据类型
b.dtype.name                #数据类型的名字
b.astype(int)               #数据类型转换

6 调用帮助

np.info(np.ndarray.dtype)

7 数组计算

  • 算数运算
#减法
a - b
np.subtract(a,b)

#加法
a + b
np.add(a,b)

#除法
a / b
np.divide(a,b)

#乘法
a * b
np.multiply(a,b)

np.exp(b)                #幂
np.sqrt(b)               #平方根
np.sin(a)                #正弦
np.cos(b)                #余弦
np.log(a)                #自然对数
e.dot(f)                 #点积
  • 比较
a == b                   #对比值 
a < 2                    #对比值
np.array_equal           #对比数组
  • 聚合函数
a.sum()                    #数组汇总
a.min()                    #数组最小值
b.max(axis=0)            #数组最大值,按行
b.cumsum(axis=1)         #数组元素的累加值
a.mean()                   #平均数
b.midian()                 #中位数
a.corrcoef()               #相关系数
np.std(b)                  #标准差

8 数组复制

h = a.view()                #使用同一数据创建数组视图
np.copy(a)                  #创建数组的副本
h = a.copy()                #创建数组的深度拷贝

9 数组排序

a.sort()                    #数组排序
b.sort(axis=0)              #以轴为依据对数组排序

10 子集、切片、索引

#子集
a[2]                        #选择索引2对应的值
b[1,2]                      #选择行1列2对应的值(等同于b[1,2])

#切片
a[0:2]                      #选择索引为0与1对应的值
b[0:2,1]                    #选择第1列中第0行、第1行的值
b[:1]                       #选择第0行的所有值(等同于b[0:1,:1])
c[1,...]                    #等同于[1,:,:]
a[ : :-1]                   #反转数组a

#条件索引
a[a<2]                      #选择数组a中所有小于2的值

#花式索引
b[[1, 0, 1, 0],[0, 1, 2, 0]]      #选择(1,0),(0,1),(1,2) 和(0,0)所对应的值
b[[1, 0, 1, 0]][:,[0,1,2,0]]      #选择矩阵的行列子集

11 数组操作

  • 转置数组
i = np.transpose(b)
i.T
  • 改变数组形状
g.reshape(3,-2)          #改变数组形状,但不改变数据

#多维数组转换成一维数组
b.reshape(-1)
b.ravel()          #返回视图
b.flatten()        #返回拷贝,对拷贝所做的修改不会影响原始矩阵
  • 添加或删除值
h.resize((2,6))          #返回形状为(2,6)的新数组
np.append(h,g)           #追加数据
np.insert(a, 1, 5)       #插入数据
np.delete(a, [1])        #删除数据
  • 合并数组
np.concatenate((a,d),axis=0)       #拼接数组

np.vstack((a,b))                   #纵向以行的维度堆叠数组 
np.r_[e,f]                 

np.hstack((e,f))                   #横向以列的维度堆叠数组

np.column_stack((a,d))             #以列的维度创建堆叠数组
np.c_[a,d]
  • 分割数组
np.hsplit(a,3)               #纵向分割数组为3等份
np.vsplit(c,2)               #横向分割数组为2等份

相关推荐