首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据科学 IPython 笔记本 9.8 比较,掩码和布尔逻辑

我们在“NumPy 数组计算:通用函数”中看到,NumPy ufuncs可用于代替循环,对数组进行快速元素算术运算;以同样方式,我们可以使用其他ufunc对数组进行逐元素比较,然后我们可以操纵结果来回答我们问题...作为ufunc比较运算 在“NumPy 数组计算:通用函数”中,我们介绍了ufunc,专注于算术运算符。 我们看到,在数组使用+,-,*,/和其他,产生了逐元素操作。...它们语法与 NumPy 版本不同,特别是在多维数组使用时会失败产生意外结果。对于这些情况,请确保使用np.sum(),np.any()和np.all(()!...Use a.any() or a.all() ''' 类似地,当在给定数组执行布尔表达式时,你应该使用|&而不是orand: x = np.arange(10) (x > 4) & (x < 8)...Use a.any() or a.all() ''' 所以记住这一点:and和or对整个对象执行单个布尔求值,而&和|对对象内容(单个位字节)执行多次布尔求值。

98010
您找到你想要的搜索结果了吗?
是的
没有找到

NumPy学习笔记—(23)

如果我们关心问题是,是否有任何元素全部元素值为 True,我们可以使用np.anynp.all: # 有没有任何一个元素大于8?...: x[x < 5] array([0, 3, 3, 3, 2, 4]) 返回是一个一维数组,里面的每个元素都满足条件:那就是结果数组出现元素对应是遮盖布尔数组相应位置为True真值。...or操作时,等同于要求 Python 把数组当成一个整体来求出最终真值假值,这样值是不存在,因此会导致一个错误: A or B --------------------------------...Use a.any() or a.all() 类似的,当对于给定数组进行布尔表达式运算时,你应该使用|&,而不是orand: x = np.arange(10) (x > 4) & (x < 8...Use a.any() or a.all() 因此,你只需要记住:and和or对整个对象进行单个布尔操作,而&和|会对一个对象进行多个布尔操作(比如其中每个二进制位)。

2.5K60

写出漂亮 Python 代码 20条准则

包 / 模块名应该全部小写: 首选使用一个单词命名; 当需要使用多个单词时,使用下划线分割它们。...zip()函数,该函数创建一个迭代器,对来自两个多个迭代器元素进行配对。...如果出现错误就会触发。 # 3. 处理值错误之外错误。 # 4. 如果没有触发错误就执行。 # 5. 不管是否触发错误都执行。...根据 Python 文档:“即使一个语句表达式在语法是正确,在试图执行它时也可能会导致错误。”特别是对于大型项目,我们不希望在耗时计算后,代码崩溃。这就是异常管理魅力所在。...than 3 ) ValueError: 具有多个元素数组真值不明确,请使用 a.any() a.all() 如果执行上面代码,你将在输出中发现一个由 5 个布尔值组成数组,表明值在 3 以下

77600

NumPy基础

np.argmax         #找出最大值索引 np.median         #中位数 np.percentile     #计算基于元素排序统计值 np.any             ...将布尔数组作为掩码  # 利用比较运算符得到布尔数组,通过索引将特定值选出,即掩码操作 x < 5         #输出布尔数组 x[x < 5]     #输出满足条件值 # 构建掩码 rainy...= (inches > 0) # 布尔操作、掩码操作和聚合结合 np.median(inches[rainy]) 七、花哨索引  花哨索引(fancy indexing):传递一个索引数组来一次性获得多个数组元素...,内含3个重复值 # at()函数在这里对给定操作,给定索引,给定值执行就地操作 # 类似方法:reduceat()函数 八、数组排序  快速排序  # 算法复杂度O[NlogN] # 不修改原始数组基础返回一个排好序数组...x[i]     #结果等同np.sort(x) # 沿着多维数组列排序(将行列作为独立数组,行列值之间关系将丢失) np.sort(X, axis=0)     #对X每一列排序 np.sort

1.2K30

Pandas 2.2 中文官方教程和指南(九·一)

Use a.empty, a.bool(), a.item(), a.any() or a.all()....使用适当方法取决于您函数是希望在整个 `DataFrame` `Series` 上操作,是按行还是按列,还是逐元素操作。 1. 表格函数应用: `pipe()` 1....由于并非所有函数都可以矢量化(接受 NumPy 数组并返回另一个数组值),因此 DataFrame 方法`map()` 和类似地 Series `map()` 接受任何接受单个值并返回单个值...但是,如果errors='coerce',这些错误将被忽略,pandas 将把有问题元素转换为pd.NaT(对于日期时间和时间间隔)np.nan(对于数值)。...Head 和 tail 要查看 Series DataFrame 对象小样本,请使用head()和tail()方法。默认显示元素数量为五个,但您可以传递自定义数量。

5700

6-比较掩码布尔

比较 布尔逻辑 本节介绍了使用布尔掩码来检查和操作NumPy数组值。...比较运算符为ufuncs 在numpy数组通用计算中,我们引入了ufuncs,尤其着重于算术运算符。我们看到在数组使用+,-,*,/和其他会导致按元素进行操作。...它们语法与NumPy版本语法不同,特别是在多维数组使用时,将失败产生意外结果。对于这些示例,请确保使用np.sum(),np.any()和np.all()!...一种更强大模式是使用布尔数组作为掩码,以选择数据本身特定子集。...易混淆 当使用&和|在整数上,表达式对元素位进行运算。当使用andor时,等效于要求Python将对象视为单个布尔实体。在Python中,所有非零整数都将评估为True。

1.4K00

Pandas 2.2 中文官方教程和指南(二十四)

压缩值实际并未存储在数组中。...nan表示数组nan元素实际并未存储,只有非nan元素。这些非nan元素具有float64 dtype。 稀疏对象存在是为了内存效率原因。...字节顺序问题 偶尔你可能需要处理在与运行 Python 机器字节顺序不同机器创建数据。此问题常见症状是错误,例如: Traceback ......然而,通过使用像 Int64Dtype PyArrow 类型(ArrowDtype)这样掩码 NumPy 类型,现在可以使用 R NA 语义。...字节顺序问题 有时您可能需要处理在与运行 Python 机器具有不同字节顺序机器创建数据。这个问题常见症状是出现错误,如: Traceback ...

26600

Pandas 和 Numpy 中统计

数值型描述统计 算数平均值 样本中每个值都是真值与误差和。 算数平均值表示对真值无偏估计。...) print(np.max(a), np.min(a), np.ptp(a)) np.argmax() np.argmin() 和 pd.idxmax() pd.idxmin(): 返回一个数组中最大.../最小元素下标 # 在np中,使用argmax获取到最大值下标 print(np.argmax(a), np.argmin(a)) # 在pandas中,使用idxmax获取到最大值下标 print...(series.idxmax(), series.idxmin()) print(dataframe.idxmax(), dataframe.idxmin()) 中位数 将多个样本按照大小排序,取中间位置元素...若样本数量为奇数,中位数为最中间元素 若样本数量为偶数,中位数为最中间两个元素平均值 案例:分析中位数算法,测试numpy提供位数API np.median() 中位数

2.8K20

Pandas 2.2 中文官方教程和指南(九·二)

Use a.empty, a.bool(), a.item(), a.any() or a.all()....Use a.empty, a.bool(), a.item(), a.any() or a.all(). 详细讨论请参阅陷阱。 比较对象是否等价 常常你会发现有多种方法可以计算相同结果。...要使用适当方法取决于您函数是否希望在整个DataFrameSeries、按行按列,元素进行操作。...由于并非所有函数都可以进行矢量化(接受 NumPy 数组并返回另一个数组值),因此 DataFrame 方法 `map()` 和类似地 Series 方法 `map()` 接受任何 Python...由于并非所有函数都可以矢量化(接受 NumPy 数组并返回另一个数组值),因此 DataFrame 方法 map() 和类似地 Series map() 接受任何接受单个值并返回单个值

11200
领券