numpy(ndarray的常见基本运算)

这篇博客介绍了NumPy中数组的算术运算,特别是相同形状和不同形状数组间的广播规则,以及如何利用按位与(&), 按位或(|)和按位异或(~)进行逻辑判断。广播规则确保了不同尺寸数组间的运算可行性,并详细解释了其四个关键条件。同时,展示了如何在实际例子中应用这些概念进行逻辑筛选。
摘要由CSDN通过智能技术生成

先导入numpy包

import numpy as np #(习惯改个名0.0)

numpy 里相同形状的数组之间可以做算术运算

x = np.array([4,9,3])
y = np.array([3,6,7])
x > y      #array([ True,  True, False])
(x > y).all()   #False
a = np.array([1,2,3])  
b = np.array([4,5,6])
a + b  # array([5, 7, 9])

不同形状的数组,必须要符合广播规则才能进行算术运算

广播规则:

a、如果数组的秩不同,将秩较小的数组进行扩展,直到两个数组的尺寸长度都一样。
b、如果两个数组在某个维度上的长度是相同的,或者其中一个数组在该维度上的长度为1,那么我们就说这两个数组在该维度上是相容的。
c、如果两个数组在所有维度上都是相容的,它们就能使用广播。
d、广播之后,两个数组的尺寸将和较大的数组尺寸一样。
e、在任何一个维度上,如果一个数组的长度为1,另一个数组长度大于1,那么在该维度上,就好像是对第一个数组进行了复制。

numpy里逻辑判断使用时,要使用按位与(&) 按位或(|)和按位异或(~)进行链接

m = np.random.randint(5, 30, size = 50)
#这里 m = array([22, 14, 10,  5, 16, 17,  8, 23, 27, 25,  6,  9, 12, 16, #17, 26, 19,
#       25, 13,  8, 19, 17,  7,  9, 21,  9, 25, 28,  9, 26, 28, #10, 27,  6,
#       27, 26, 19, 17, 17,  9, 27, 29, 10,  9, 19, 23, 21, 28, #10, 20])
(m > 20) & (m < 25)   # 这是比较m大于20和m小于25的数
#array([ True, False, False, False, False, False, False,  True, #False,
#       False, False, False, False, False, False, False, False, #False,
#       False, False, False, False, False, False,  True, False, #False,
#       False, False, False, False, False, False, False, False, #False,
#       False, False, False, False, False, False, False, False, #False,
#        True,  True, False, False, False])

(m > 20) | (m < 10) # 这是求m大于20 或 m 小于10 的数
#array([ True, False, False,  True, False, False,  True,  True,  #True,
#        True,  True,  True, False, False, False,  True, False,  #True,
#       False,  True, False, False,  True,  True,  True,  True,  #True,
#        True,  True,  True,  True, False,  True,  True,  True,  #True,
#      False, False, False,  True,  True,  True, False,  True, #False,
#        True,  True,  True, False, False])
~(m > 25) #求m大于25 的反 就是求m小于25的
#array([ True,  True,  True,  True,  True,  True,  True,  True, #False,
#        True,  True,  True,  True,  True,  True, False,  True,  #True,
#        True,  True,  True,  True,  True,  True,  True,  True,  #True,
#       False,  True, False, False,  True, False,  True, False, #False,
#        True,  True,  True,  True, False, False,  True,  True,  #True,
#        True,  True, False,  True,  True])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值