numpy用法2: numpy的基础运算

加减乘除运算

import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c1=a-b#减
print(c1)

结果:
[10 20 30 40] [0 1 2 3]
[10 19 28 37]

c2=a+b#减
print(c2)

结果:
[10 21 32 43]

c3=a*b#乘
print(c3)

结果:
[ 0 20 60 120]

平方

c4=b**2#b的平方
g=b*b
print(c4)
print(g)

结果:
[0 1 4 9]
[0 1 4 9]


调用函数

c5=10*np.sin(a)#用np.xxx调用三角函数
print(c5)
e=np.sin(np.pi/6)
print(e)

结果:
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
0.49999999999999994


比值符号

print(b)
print(b<3)#>,<,==

结果:
[0 1 2 3]
[ True True True False]


矩阵乘法

.dot(矩阵1,矩阵2)
矩阵1.dot(矩阵2)

a1=np.array([[1,1],
            [0,1]])
b1=np.arange(4).reshape((2,2))
c6=a1*b1#普通乘法
c_dot=np.dot(a1,b1)#矩阵乘法1
c_dot_2=a1.dot(b1)#矩阵乘法2
print(a1)
print(b1)
print('==========')
print(c6)
print(c_dot)
print(c_dot_2)

结果:
[[1 1]
[0 1]]
[[0 1]
[2 3]]

==========
[[0 1]
[0 3]]
[[2 4]
[2 3]]
[[2 4]
[2 3]]


随机矩阵

a2=np.random.random((2,4))#随机矩阵
print(a2)

结果:
[[0.94370527 0.77206288 0.66349824 0.03071424]
[0.40588958 0.45598837 0.9088615 0.73909982]]


求和

.sum()
axis=0取列,axis=1取行

print(np.sum(a2,axis=1))#axis维度 每行求和

结果:
[2.40998064 2.50983926]


最值

print(np.max(a2,axis=0))#axis=0列上,axis=1行上
print(np.min(a2,axis=1))

结果:
[0.94370527 0.77206288 0.9088615 0.73909982]
[0.03071424 0.40588958]


最值的索引

argmin()
argmax()

A=np.arange(2,14).reshape((3,4))
print(A)
print(np.argmin(A))#最小值的索引
print(np.argmax(A))#最大值的索引

结果:
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
0
11


平均值的三种种表示方式

.mean(矩阵)
.average(矩阵)
矩阵.mean()

print(np.mean(A))#平均值的三种种表示方式
print(np.average(A))
print(A.mean())

结果:
7.5
7.5
7.5

行或列的平均值

nonzero(矩阵)

print(A1)
print(np.mean(A1,axis=0))#列的平均值
print(np.mean(A1,axis=1))#行的平均值

结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[10. 9. 8. 7.]
[12.5 8.5 4.5]


中位数

.mean(矩阵)
.average(矩阵)
矩阵.mean()

print(np.median(A))#中位数

结果:
7.5


累加和累差数组

.cumsum(矩阵)累加
.diff(矩阵)累差

print(A)
print(np.cumsum(A))#累加数组
print(np.diff(A))#累差数组

结果:
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]]
[ 2 5 9 14 20 27 35 44 54 65 77 90]
[[1 1 1]
[1 1 1]
[1 1 1]]


输出所有非零索引

nonzero(矩阵)

print(np.nonzero(A))#输出所有非零索引

结果:
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))


数组逐行进行排序

sort(矩阵)

A1=np.arange(14,2,-1).reshape((3,4))#-1是步长,相当于等差数列
print(A1)
print(np.sort(A1))#对A1逐行进行排序

结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
[[11 12 13 14]
[ 7 8 9 10]
[ 3 4 5 6]]


矩阵的置的两种表示方法

.transpose(矩阵)
矩阵.T

print(np.transpose(A1))#transpose矩阵的置的两种表示方法
print(A1.T)
print((A1.T).dot(A))#矩阵乘以矩阵的置

结果:
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[148 178 208 238]
[130 157 184 211]
[112 136 160 184]
[ 94 115 136 157]]


修改矩阵里的数,让矩阵里的数不大于最大值不小于最小值

nonzero(矩阵)

print(np.clip(A1,5,9))#clip(矩阵,矩阵min,矩阵max)所有小于min的都等于min,所有大于max都等于max

结果:
[[9 9 9 9]
[9 9 8 7]
[6 5 5 5]]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值