python数据科学--numpy入门

numpy库是python中用于科学计算的核心库,它提供了一个高性能的多维数组对象,以及用于处理这些数组的工具。

导入numpy模块

import numpy as np

创建数组

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)        #创建三维数组

初始方法

np.zeros((3,4))                 #创建一个3x4的0数组
np.ones((2,3,4),dtype=np.int16) #创建两个3x4的1数组
d=np.arange(10,25,5)            #创建一个值在10~25以内,间隔为5的一维数组
np.linspace(0,2,9)              #创建一个值在0~2以内,长度为9的一维数组
e=np.full((2,2),7)              #创建一个值都为7的2x2二维数组
f=np.eye(2)                     #创建一个2x2单位矩阵
np.random.random((2,2))         #创建具有随机值的数组
np.empty((3,2))                 #创建空数组

I/O:磁盘上的保存和加载

np.save('my_array',a)
np.savez('my_array.npz',a,b)
np.load('my_array.npy')

I/O:保存和加载文本文件

np.loadtxt('myfile.txt')
np.genfromtxt('my_file.csv',delimiter=',')
np.savetxt('myarray.txt',a,delimiter=' ')

数据类型:

np.int64        #整型
np.float32      #浮点型
np.complex      #复数
np.bool         #布尔值
np.object       #对象
np.string_      #ASCLL字符
np.unicode_     #Unicode所有字符,字节数由平台决定

查看数组:

a.shape        #轴 查看数组形状,对于矩阵,n行m列 
len(a)          #数组长度
a.ndim         #迭 数组维数
a.size         #数组元素数,行*列
b.dtype        #数组数据类型
b.dtype.name   #数组数据类型名称
b.astype(int)  #转换数组为不同数据类型

帮助代码

np.info(np.ndarray.dtype)

数组数学运算

np.subtract(a,b)        #数组相减a-b
np.add(b,a)             #数组相加b+a
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                #两个数组之间进行比较,相同位置元素值相同标明true,否则false
a<2                 #a数组元素值小于2的元素标明为true,否则false
np.array_equal(a,b) #

聚合函数

a.sum()            #求和数组a各元素的总和
a.min()            #数组a最小值
b.max(axis=0)      #数组b最大值,axis=0为列,1为行
b.cumsum(axis=1)   #累加,cumsum和cumprod之类的方法不聚合,产生一个中间结果组成的数组,默认一维数组,1为按原样
b.cumprod()        #累乘
a.mean()           #平均数
a.median()         #中位数
a.corrcoef()       #
np.std(b)          #标准差:方差平方根

复制函数

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

数组排序

a.sort()        #从小到大排序
a.sort(axis=0)  #从小到大对列排序 axis=0为列,1为行

数组处理

  • 转置阵列
i=np.transpose(b)    #
i.T                  #矩阵转置, 行变列, 列变行, 对角线翻转矩阵
  • 改变数组形状
b.ravel()        #使阵列变平,多维数组转为一维数组
b.reshape(3,-2)  #重塑,但不要改变数据
  • 添加/移除元素
h.resize((2,6))        #返回具有行列的新数组(2,6)
np.append(h,g)         #将数据追加到数组中
np.insert(a,1,5)       #将数组插入到数组中
np.delete(a,[1])       #从数组中删除数据
  • 组合数组
np.concatenate((a,b),axis=0)    #级联数组
np.vstack((a,b))                #垂直堆栈数组(行)
np.r_[a,b]                      #垂直堆栈数组(行)
np.hstack((a,b))                #水平堆栈数组(列)
np.column_stack((a,b))          #创建堆叠列阵列
np.c_[a,b]                      #创建堆叠列阵列
  • 拆分阵列
np.hsplit(a,3)        #在第三个索引中水平地拆分数组a
np.vsplit(a,2)        #在第二个索引上垂直地拆分数组a

猜你喜欢

转载自blog.csdn.net/LinRuiC/article/details/84227226