numpy广播,掩码操作

#++++++++++++++++++++++++++++++++广播操作+++++++++++++++++++++++++++++++++++

x = np.arange(9).reshape(3,3)
y = x+3
z = np.arange(3).reshape(3,1)

print(x+3)#标量广播
print(x+z)#向量广播
print(x[0,:]+z)#两个数组同时广播

#广播规则:
#规则1:如果两个数组的维度数不同,则小维度数组的shape将会在最左边补1
#规则2:如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1的维度扩展以匹配另外一个数组的形状
#规则3:如果两个数组的形状在任何一个维度上都不匹配且没有任何一个维度等于1,那么会引发异常
m = np.ones((2,3))
n = np.arange(3)

print(m+n)


#广播的应用
#数组归一化
x = np.random.randint(10,size=(5,3))
mean = x.mean(0)
nx = x-mean
print(nx)

# #二维函数
x = np.linspace(0, 5 , 50)
y = np.linspace(0, 5 , 50)[:,np.newaxis]

z = x ** 2 + y ** 2

plt.imshow(z ,origin='lower' ,extent=[0,5,0,5],cmap='viridis')
plt.colorbar()
plt.show()

#掩码操作
x = np.arange(10)
print(x[x>5])
print(x>5)

 

posted @ 2020-12-16 22:53  玛吉  阅读(90)  评论(0编辑  收藏  举报