数据处理之numpy的常用操作
·
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)