Numpy库基础学习-2
# 数组的矩阵积:matrix product
#二维数据即矩阵,第一个矩阵的列和第二个矩阵的行相等可以进行矩阵的乘积它不是元素级的运算。
ar1=np.array([[120,60,220],[115,23,201],[132,48,230]])
ar2=np.array([[12.34,0.04],[204.56,2.34],[9.89,0.45]])
ar1.dot(ar2)
np.dot(ar1,ar2)
array([[15930.2 , 244.2 ], [ 8111.87, 148.87], [13722.46, 221.1 ]])
# 多维数组索引
arr=np.array([[[2,3,4,5],[1,3,4,9]],[[0,3,4,8],[2,4,9,4]],[[1,4,5,8],[2,5,6,8]],[[2,3,6,8],[3,4,8,9]]])
arr.shape
(4, 2, 4)
# 数组切片
# 在各个维度上单独切片,如果某维度都保留,则直接使用:
arr[1]
arr[1][0]
print(arr[1][0][1:3])
print(arr[1][1][1:3])
arr[1,:,1:3]
# 布尔索引
A=np.random.random((4,4))
A
A<0.5
names=np.array(['Tom','Merry'])
names=='Tom'
scores=np.array([[98,87,45,34],[88,45,23,98]])
scores[names=='Tom'] #True位置上的元素组成一个新的数组
names=np.array(['Merry','Tom','John'])
names
scores=np.array([[98,87,45,34],[88,45,23,98]])
score[names=='Tom']
score[names=='Tom',2]
names=np.array(['Merry','Tom','John','Jill'])
scores=np.array([[98,87,45,34],[88,45,23,98],[88,87,67,66],[86,84,82,78]])
scores[~((names=='Tom')|(names=='Jill'))]
scores[(names!='Tom')&(names!='Jill')]
arr=np.arange(32).reshape(8,4)
arr
arr[[0,3,5]]
arr[[0,3,5],[0,3,2]] #矩阵的下标组合
arr[np.ix_([0,3,5],[0,2,3])] #从0,3,5行分别取023列的数据组成一个新的数组
arr
arr.transpose() #矩阵转置
arr.T #矩阵转置
# 通用函数,快速元素级数组函数
arr=np.arange(10).reshape(2,-1)
arr
np.sqrt(arr)
# 聚合函数
arr=np.array([1.0,2.0,3.0,4.0])
arr.max()
arr.min()
arr.mean()
arr.std()
np.sqrt(np.power(arr-arr.mean(),2).sum()/arr.size)
arr=np.array([[1,2,3,4],[3,4,5,6]]) #同一列上元素进行聚合
arr.mean(axis=0)
arr.mean(axis=1) #同一行上的元素进行聚合
arr.sum(axis=0)
arr.max(axis=1)
arr.std(axis=0)
# np.where函数是三元表达式x if condition else y的矢量化版本
xarr=np.array([1.1,1.2,1.3,1.4,1.5])
yarr=np.array([2.1,2.2,2.3,2.4,2.5])
condition=np.array([True,False,True,True,False])
result=[(x if c else y) for x,y,c in zip(xarr,yarr,condition)]
result
result=np.where(condition,xarr,yarr)
result
# 举例将数组中所有NaN缺失值替换为0
arr=np.array([[1,2,np.NaN,4],[3,4,5,np.NaN]])
arr
np.isnan(arr)
np.where(np.isnan(arr),0,arr)
# 求数组中不重复的元素
productType=np.array(['图书','数码','小吃','美食','男装','美食','女装','小吃'])
productType
np.unique(productType)
for pt in np.unique(productType):
print(pt)
data=np.array([[1,2,3,4],[2,3,4,5],[6,7,8,9],[2,4,5,6]])
print(data)
np.save('data',data)
np.load('data.npy')
x=y=z=np.arange(0.0,5.0,1.0)
np.savetxt('test.out',x,delimiter=',')
np.savetxt('test.out',(x,y,z)) #相同的数据存三次
np.savetxt('test.out',x,fmt='%1.4e') #小数点后4位,用乘10的几次方表示
np.savetxt('data_demo.csv',data,delimiter=',')
np.loadtxt('data_demo.csv',delimiter=',')
np.genfromtxt('data_demo.csv',delimiter=',')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】