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=',')

 

posted @   老牛小茂  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示