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

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

我们NumPy 上的数组计算:通用函数”中看到,NumPy 的ufuncs可用于代替循环,对数组进行快速的元素算术运算;以同样的方式,我们可以使用其他ufunc对数组进行元素比较,然后我们可以操纵结果来回答我们的问题...作为ufunc的比较运算 NumPy 上的数组计算:通用函数”,我们介绍了ufunc,专注于算术运算符。 我们看到,在数组使用+,-,*,/其他,产生了元素操作。...NumPy 还将比较运算符,例如(大于),实现为元素的ufunc。这些比较运算符的结果始终是布尔数据类型的数组。...比较运算符 NumPy 实现为ufunc;例如,当你编写x <3NumPy 内部使用np.less(x, 3)。...这是通过 Python 的按逻辑运算符,&,|,^~来实现的。与标准算术运算符一样,NumPy 将这些重载为ufunc,这些ufunc(通常是布尔)数组元素工作。

1K10

Python入门教程(六):Numpy计算之布尔运算

如果我们使用Numpy的通用函数可以用来替代循环,以实现快速的数组元素比较,同样地,我们也可以用掩码来解决这些问题。...同标准运算符一样,Numpy用通用函数重载了这些逻辑运算符,即可以实现数组运算。...下表总结了的布尔运算其对应的通用函数。 ? 利用这些工具,就可以回答那些天气数据的问题了。以下的数据是结合使用掩码聚合实现的计算结果。...它们的区别是:andor判断整个对象是真是假,而&|是指每个对象的比特。用andor,就相当于让Python将整个对象当作整个布尔尸体。Python中所有非零的整数都会被当成True。...当你Numpy中有一个布尔数组,该数组可以被当作是有比特字符组成的,其中1=True,0=False。这样的数组可以用上面介绍的方式进行&|操作。

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

    NumPy 1.26 中文文档(五十五)

    (gh-21627) 底层单例RandomState的生成器可以更改。 启动numpy.random模块公开的单例RandomState实例使用MT19937生成器进行初始化。...(gh-12065) 更快的比较运算符 比较函数(numpy.equal,numpy.not_equal,numpy.less,numpy.less_equal,numpy.greaternumpy.greater_equal...(gh-21995) DLPack 导出引发BufferError 当数组缓冲区无法通过 DLPack 导出,现在总是引发BufferError,而以前引发TypeError或RuntimeError...(gh-12065) 更快的比较运算符 比较函数(numpy.equal、numpy.not_equal、numpy.less、numpy.less_equal、numpy.greaternumpy.greater_equal...(gh-12065) 更快的比较运算符 比较函数(numpy.equal,numpy.not_equal,numpy.less,numpy.less_equal,numpy.greaternumpy.greater_equal

    10310

    NumPy 1.26 中文官方指南(四)

    .,0].shape (3,) 它最多可以使用一次;a[...,0,...]引发一个IndexError。 在打印输出NumPy 用...替代大数组的中间元素。... axis=None 的情况下使用相同种类转换融合。 赋值给数组NumPy 标量会被转换。 当混合字符串其他类型数组强制转换会发生变化。...回退的 lapack_lite ,64 平台上使用 64 整数大小 当输入为 np.float64 使用 AVX512 内部实现 np.exp 禁用 madvise hugepages...) 变更 NaT 现在排序到数组的末尾 np.set_printoptions 不正确的 threshold 引发 TypeError 或 ValueError 保存带有元数据的数据类型发出警告...当传递错误类型,isnat引发TypeError。 当传递错误类型,dtype.__getitem__引发TypeError。

    11810

    NumPy 1.26 中文官方指南(三)

    max(a,b) np.maximum(a, b) 元素比较ab,返回每对的最大值 norm(v) np.sqrt(v @ v)或np.linalg.norm(v) 向量v的 L2 范数 a...逻辑运算符 NumPy ,&或|是按 AND/OR 运算符,而在 MATLAB ,&|是逻辑 AND/OR 运算符。这两者看起来可能是相同的,但存在重要的区别。...如果你知道参数是布尔值,你可以使用 NumPy 的按运算符,但是使用括号要小心,就像这样:z = (x > 1) & (x < 2)。...这些环境变量 Meson 文档的参考表 有文档记录。 请注意,环境变量只会在干净构建生效,因为它们影响配置阶段(即,meson 设置)。...当 NumPy 函数遇到外部对象,它们依次尝试: 缓冲区协议, Python C-API 文档 描述。 __array_interface__ 协议,描述 此页面

    34510

    Numpy的广播功能

    数组的计算:广播广播的介绍广播的规则广播的实际应用比较,掩码布尔逻辑比较操作操作布尔数组将布尔数组作为掩码 《Python数据科学手册》读书笔记 数组的计算:广播 另外一种向量化操作的方法是利用 NumPy...NumPy 广播功能的好处是, 这种对值的重复实际上并没有发生, 但是这是一种很好用的理解广播的模型。...True, True, False, True, True]) x == array([False, False, True, False, False]) # 利用复合表达式对两个数组进行元素比较...&:逻辑与 | :逻辑或 ~:逻辑取反 运算符 对应通用函数 & np.bitwise_and np.bitwise_or ~ np.bitwise_not 将布尔数组作为掩码 一种更强大的模式是使用布尔数组作为掩码..., 可以进行简单的索引, 即掩码操作: # 将小于5的值从数组筛选出来 x[x < ] array([, , , , , ]) andor对整个对象执行单个布尔运算,而&|对一个对象的内容执行多个布尔运算

    1.8K20

    6-比较掩码布尔

    比较 布尔逻辑 本节介绍了使用布尔掩码来检查操作NumPy数组的值。...比较运算符为ufuncs numpy数组通用计算,我们引入了ufuncs,尤其着重于算术运算符。我们看到在数组使用+,-,*,/其他导致按元素进行操作。...NumPy还实现了比较运算符,例如(大于)作为元素方式的ufunc。这些比较运算符的结果始终是具有布尔数据类型的数组。所有六个标准比较操作均可用: # 与数组每个比较,也可以使用!...这是通过Python的按逻辑运算符&,|,^〜完成的。与标准算术运算符一样,NumPy将这些重载为ufunc,它们(通常为Boolean)数组逐个元素地工作。...易混淆 当使用|整数上,表达式对元素的进行运算。当使用and或or,等效于要求Python将对象视为单个布尔实体。Python,所有非零整数都将评估为True。

    1.4K00

    NumPy学习笔记—(23)

    3.2.UFuncs 的比较运算符 使用 Numpy 计算:通用函数小节,我们介绍了 ufuncs,而且主要集中介绍了算术运算符。...我们知道可以使用+、-、*、/其他的运算可以对数组进行逐个元素的运算操作。NumPy 同样也实现了比较运算符如(大于)的 ufuncs。...3.5.附加内容:对比使用 and/or 关键字&/|运算符 使用关键字andor,与使用运算符&|,两者的区别,常常会困惑很多人。什么情况下你应该用哪种运算呢?...0) True 当你整数上使用&|运算,这两个操作运算整数的每个二进制每个二进制上执行二进制与或二进制或操作: bin(42) '0b101010' bin(59) '0b111011...当数组是一个 NumPy 的布尔数组,你可以将这个布尔数组想象成它是由一系列二进制组成的,因为1 = True0 = False,所以使用&|运算得到的结果类似上面的例子: A = np.array

    2.6K60

    NumPy 1.26 中文文档(五十九)

    (gh-16068) SeedSequence具有小种子将不再与生成发生冲突 小种子(小于2**96)以前曾被隐式地 0 填充到 128 ,即内部熵池的大小。生成,生成密钥 0 填充之前被串联。...(gh-13421) 64 平台上使用 64 整数大小作为后备 lapack_lite 在后备 LAPACK 库中使用 64 整数大小来处理线性代数的大数组,这在系统没有安装 LAPACK 时会发生...(gh-16102) 64 平台上使用 64 整数大小作为后备 lapack_lite 64 平台上使用 64 整数大小回退 LAPACK 库,当系统没有安装 LAPACK ,允许其处理大数组的线性代数...(gh-12658) (gh-15068) np.set_printoptions的错误threshold引发TypeError或ValueError 以前的不正确的threshold引发ValueError...(gh-12658) (gh-15068) np.set_printoptions的不正确的threshold引发TypeError或ValueError 先前的不正确的threshold引发ValueError

    9510

    NumPy 1.26 中文文档(五十六)

    特别是,当解析单个条目失败,现在总是引发ValueError。 (gh-20580) 改进 ndarray.__array_finalize__现在可调用 这意味着子类现在可以使用super()....特别是,当解析单个条目失败,现在总是引发ValueError。...特别是,当解析单个条目失败,现在总是引发ValueError。 (gh-20580) 改进 ndarray.__array_finalize__现在可调用 这意味着子类现在可以使用super()....该 bug 仅影响步长大于(2^{64})的结果,这种情况发生在不支持 128 整数的平台上(例如 Windows 32 Linux)。...该错误仅影响步长大于(2^{64})的结果,这种情况发生在不支持 128 整数的平台上(例如 Windows 32 Linux)。

    12510

    NumPy 1.26 中文文档(五十四)

    数组上的==!=运算符现在总是: 引发比较期间发生的错误,例如当数组具有不兼容的形状(np.array([1, 2]) == np.array([1, 2, 3]))。...(gh-23229) 当使用np.equal或np.not_equal比较日期时间时间间隔numpy 以前允许使用casting="unsafe"进行比较。这个操作现在失败。...(gh-22707) 当使用np.load从文件句柄加载数据,如果句柄位于文件末尾,可能会通过多次调用np.load读取多个数组numpy 以前会在allow_pickle=False引发ValueError...现在数组上的 == != 运算符总是: 比较过程引发错误,例如当数组具有不兼容的形状(np.array([1, 2]) == np.array([1, 2, 3]))。...引发 ValueError allow_pickle=True 引发 OSError。

    10910

    NumPy 1.26 中文文档(五十三)

    会议记录在hackmd.io上,存储NumPy 存档存储库。 需要什么 NumPy 文档已经详细涵盖了细节。 API 参考文档直接从代码的docstrings生成,当构建文档。...尽力而为 - 我们帮助解决问题的。 图片现实数据使文本更具吸引力影响力,但请确保您使用的内容具有适当的许可证并可供使用。同样,设计艺术品,即使有一个初步的想法,也可以由其他人进一步完善。...=None 的情况下,连接的相同类型强制转换 当分配给数组NumPy 标量将被强制转换 混合字符串其他类型数组强制转换发生变化 数组强制转换重组 对numpy.broadcast_arrays...) 更改 NaT现在在数组的末尾排序 np.set_printoptions的不正确threshold引发TypeError或ValueError 保存带有元数据的 dtype...‘out’ 关键字参数现在接受数组的元组 byte 数组索引现在引发 IndexError 包含带有数组的对象的掩码数组 当遇到无效值,中位数会发出警告返回 nan 从

    11010

    NumPy基础

    参考链接: Pythonnumpy.log1p 文章目录  一、创建数组二、数组操作类型1. 数组属性2. 数组索引:获取单个元素3. 切片4. 数组的变形5....数组拼接分裂    三、数组计算:通用函数四、聚合五、数组计算:广播六、比较、掩码布尔逻辑1. 比较2. 操作布尔数组3....如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状沿着维度为1的维度扩展以匹配另外一个数组的形状。如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么引发异常。 ...a,b形状匹配开始运算 如果b.shape为(m, k)任何维度均不匹配,引发异常ValueError 例: a.shape (3, 1) b.shape (3,)  ->(1, 3)  a.shape...(数组运算)  # 通用函数                 # 运算符 np.bitwise_and             # &         # 交集 np.bitwise_or

    1.3K30

    Numpy模块的where函数

    下面是java的三目表达式(其实在大多数的语言中都是这样的): 单目运算符: ~3(运算符取反码)双目运算符:3 + 4三目运算符: 格式:比较(关系)表达式?...因为Python没有使用这种通用格式来实现三元表达式,而是使用下面的格式来实现三元表达式: 为真的结果 if 判定条件 else 为假的结果 这里看看它们有什么区别?...不过Python虽然可以称为"三目运算符"或者"三元表达式",但是我认为Python仅仅能称为"三元表达式",因为此时返回的结果只能是一个输出,而且单单看Python实现"三元表达式"语句,其实怎么看都像是...list存放数据的结果要比上面例子的结果规整一些,其实这是因为它存放在数组中进行了比较,那么numpy数组就会放大我们的精度。...但是如果使用Python的list列表的话会有几个问题: 它对于大数组的处理速度不是很快(因为所有工作都是由纯python完成的); 无法用于多维数组; 所以我们就有了numpy.where函数的出现

    1.5K10

    数据科学 IPython 笔记本 9.7 数组上的计算:广播

    向量化操作的另一种方法是使用 NumPy 的广播功能。广播只是一组规则,用于不同大小的数组上应用二元ufunc(例如,加法,减法,乘法等)。...NumPy 广播的优势在于,这种值的重复实际上并没有发生,但是当我们考虑广播,它是一种有用的心理模型。 我们可以类似地,将其扩展到更高维度的数组。...这些示例的几何图形为下图(产生此图的代码可以“附录”中找到,改编自 astroML 中发布的源码,经许可而使用)。...规则 2:如果两个数组的形状在任何维度上都不匹配,则该维度形状等于 1 的数组将被拉伸来匹配其他形状。 规则 3:如果在任何维度,大小不一致且都不等于 1,则会引发错误。...使用标准约定(参见“Scikit-Learn 的数据表示”),我们将其存储10x3数组: X = np.random.random((10, 3)) 我们可以使用第一维上的“均值”聚合,来计算每个特征的平均值

    69120

    节省大量时间的 Deep Learning 效率神器

    包含多个张量张量运算的复杂表达式,张量的维数很容易忘了。即使只是将数据输入到预定义的 TensorFlow 网络层,维度也要弄对。当你要求进行错误的计算,通常会得到一些没啥用的异常消息。...它可以兼容 TensorFlow、PyTorch Numpy以及 Keras fastai 等高级库。 ? 张量代码定位问题令人抓狂!...或者,我们可以使用交互式调试器手动单击或键入命令来请求所有张量形状。(这在像 PyCharm 这样的 IDE 不太实用,因为调试模式很慢。)...您还可以检查一个完整的带有不带阐明()的并排图像,以查看它在笔记本的样子。下面是带有没有 clarify() 的例子notebook 比较。 ?...例如,下面是从一个门控循环单元(GRU)实现的内部提取的一个语句: h_ = torch.tanh(Whh_ @ (r*h) + Uxh_ @ X.T + bh_) 这是什么计算或者变量代表什么不重要,

    1.7K31

    Python内置(2)异常、常量、globals

    异常 Python有66个内置的异常(exception)类,每个类都旨在供用户,标准库其他所有人使用,作为解释捕获代码错误的有意义的方法。...该函数可能发生 3 件事: • 如果key不在缓存,则尝试访问cached_items[key]将引发一个KeyError .这会在try块捕获,并进行 API 调用以获取数据。...__loader__ __loader__设置为导入加载模块使用的加载程序对象。这个特定的模块_frozen_importlib模块定义,并且是用于导入内置模块的内容。...__cached__ 导入__cached__模块,该属性存储该模块的已编译 Python 字节码的缓存文件的路径。你可能惊讶,Python也要编译吗?是的。Python被编译。...现在,由于上面的“编译为字节码”步骤导入模块需要花费大量时间,因此Python将字节码存储(编组)到.pyc文件,并将其存储名为__pycache__的文件夹

    93420

    NumPy 1.26 中文文档(五十八)

    np.intp 32 机器上为 32 64 机器上为 64 。这可能是最好的索引使用类型。...(gh-16134) 当 NumPy 标量分配给数组时会发生强制转换 创建或分配数组,在所有相关情况下,NumPy 标量现在将被与 NumPy 数组完全相同地进行强制转换。...在混合字符串其他类型数组的强制转换发生了变化 当字符串其他类型混合时,例如: np.array(["string", np.float64(3.)], dtype="S") 结果将发生变化,这可能导致某些情况下具有更长字符串的字符串数据类型... NumPy 1.17 numpy.broadcast_arrays 写入结果数组开始发出警告。当通过缓冲区接口使用数组(例如 memoryview(arr)),该警告被跳过。...(gh-16554) operator.concat函数现在对数组参数引发 TypeError 之前的行为是退回到加法添加两个数组,这被认为是一个连接函数的意外行为。

    23010

    Python入门教程(五):Numpy计算之广播

    例2: # a + 5 # array([5, 6, 7]) 我们也可以把这个原理拓展到更高维度的数组,下面例子展示了一个一维数组一个二维数组相加的结果。例3一个二维数组被拓展了或者被广播了。...规则3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度等于1,那么引发异常。 广播示例1: 将一个二维数组一个一维数组相加。...: operands could not be broadcast together with shapes (3,2) (3,) 这时候,你可能像通过a数组的右边补上1,而不是左边补上1,让aM...这种灵活性某些场景可能会有用,但它可能导致结果模糊。如果你希望实现右边补全,可以通过变形数组来实现。...另外需要注意的是,这里仅用到了+运算符,而这些广播规则对于任意二进制通用函数都是使用的。

    65620
    领券