数据处理之numpy的常用操作
1.导入库import numpy as np2.将列表转为矩阵array = np.array([[1,2,3],[2,3,4]])print(array)print('number of dim',array.ndim) #维度print('shape:',array.shape)print('size:',array.size)3.dtype可以指定数据类型a = np.array([2,3
·
1.导入库
import numpy as np
2.将列表转为矩阵
array = np.array([[1,2,3],
[2,3,4]])
print(array)
print('number of dim',array.ndim) #维度
print('shape:',array.shape)
print('size:',array.size)
3.dtype可以指定数据类型
a = np.array([2,3,4],dtype = np.float)
print(a.dtype)
4.生成矩阵
a = np.zeros((3,4)) # 生成3行4列全是0的矩阵
a
a = np.ones((3,4)) # 生成3行4列全是1的矩阵
a
a = np.arange(10,20,2) #生成以10开始步长为2,以18结束的数列
a
5.使用reshape改变shape
a = np.arange(12).reshape((3,4))
a
6.生成数列
a = np.linspace(1,10,20) # 生成从1到10 取20段的数列
a
7.numpy的基础运算
a = np.array([10,20,30,40])
b = np.arange(4)
c = a - b # 减
d = a + b # 加
e = a ** 2 # 平方
f = 10 * np.sin(a)
f
8.通过判断取值
# 判断
b = np.arange(4)
print(b)
print(b<3) # 判断哪些数小于3
print(b == 3) # 判断哪些值等于3
9.矩阵乘法
a = np.array([[1,1],
[0,1]])
b = np.arange(4).reshape((2,2))
# 矩阵乘法
c = a*b # 逐个相乘
c_dot = np.dot(a,b) #矩阵乘法
c_dot2 = a.dot(b) #矩阵乘法另一种表现形式
print(c)
c_dot
10.生成随机数矩阵
a = np.random.random((2,4)) #生成2行4列,取值为0到1随机数的矩阵
a
11.矩阵求和取最大最小值
a = np.random.random((2,4)) #生成2行4列,取值为0到1随机数的矩阵
print(np.sum(a)) # 求和
print(np.min(a)) # 求最小值
print(np.max(a)) # 求最大值
print(np.sum(a,axis =1)) # 对每个行求和
print(np.min(a,axis =0)) # 求每列的最小值
12.numpy的索引
A = np.arange(2,14).reshape((3,4))
A
print(np.argmin(A)) # 计算最小值的索引
print(np.argmax(A)) # 计算最大值的索引
print(np.mean(A)) # 计算矩阵平均值
print(np.median(A)) # 计算矩阵中位数
print(np.cumsum(A)) # 对矩阵进行累加
print(np.diff(A)) # 对矩阵进行一阶差分
print(np.nonzero(A)) # 输出矩阵中非零值的位置
print(np.sort(A)) # 对矩阵进行逐行排序
print(np.transpose(A)) # 对矩阵进行转置 A.T也可以
print(np.clip(A,3,9)) # 将矩阵中所有小于3的值变成3,大于9的值变成9
A = np.arange(3,15).reshape(4,3)
A
print(A[3]) # 输出第四行
print(A[1][1]) # 输出第二行第二列 A[1,1]也可以
print(A[2,:]) # 输出第三行的所有数
print(A[1,1:3]) # 输出第二行第二个数到第三个数
13.迭代
for row in A : # 迭代每一行
print(row)
for column in A.T : # 迭代每一列
print(column)
for item in A.flat : # 迭代每一个值
print(item)
14.合并
A = np.array([1,1,1])
B = np.array([2,2,2])
print(np.vstack((A,B))) # 上下合并
print(np.hstack((A,B))) # 左右合并
A = np.array([1,1,1])[:,np.newaxis] # 在列上加一个维度
B = np.array([2,2,2])[:,np.newaxis]
print(np.vstack((A,B))) # 上下合并
print(np.hstack((A,B))) # 左右合并
print(np.concatenate((A,B,B,A),axis=0)) # 进行多个array的合并 上下合并
print(np.concatenate((A,B,B,A),axis=1)) # 进行多个array的合并 左右合并
15.分割
A = np.arange(12).reshape((3,4))
A
print(np.split(A,2,axis = 1)) #将A分成两块 对列操作
print(np.split(A,3,axis = 0)) #将A分成3块 对行操作
print(np.array_split(A,3,axis = 1)) #将A分成3块 对列操作
print(np.vsplit(A,3)) # 横向分成三块
print(np.hsplit(A,2)) # 纵向分成两块
在这里插入代码片
16.复制
# 复制
a = np.arange(4)
a
b = a
c = a
d = b
a[0] = 11 # 改变a的一个值
a
b is a # 改变a的同时发现b也同时改变了
b
d is a # d 也同样改变了
d[1:3] = [22,33] # 同样改变d a也会改变
a
b = a.copy() #用copy赋值
b
a[3] = 66
a
b # 现在改变a的值b不会变了

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)