Numpy 广播

2023-12-09

下面的代码给出了 a (0-11) 中的元素在数组 c 的第一行中出现了多少次。 (a==c[0])。我如何调整此代码,以便它对 c 中的所有行(而不仅仅是 c[0])执行相同的操作。本质上是一个for循环。

import numpy as np
c=(np.random.rand(2,5)*12).round()
print (c)

a=np.arange(12).reshape(12,1)
print (np.sum(a==c[0],axis=1))

结果应该如下所示,但没有 for 循环:

for n in range(2):
    a=np.arange(12).reshape(12,1)
    print (np.sum(a==c[n],axis=1))

如果你必须使用broadcasting这会导致大量内存使用,你可以这样做 -

(c[...,None] == np.arange(12)).sum(1)

对于更大尺寸的c,更好的方法是不打扰c然后四处走动np.arange(12),就像这样-

(c == (np.arange(12)[:,None,None])).sum(-1).T

这是一些证明theory -

In [28]: c=(np.random.rand(2000,5000)*12).round()

In [29]: %timeit (c[...,None] == np.arange(12)).sum(1)
1 loops, best of 3: 423 ms per loop

In [30]: %timeit (c == (np.arange(12)[:,None,None])).sum(-1).T
1 loops, best of 3: 232 ms per loop
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Numpy 广播 的相关文章

  • 使用 python 中的公式函数使从 Excel 中提取的值的百分比相等

    import xlrd numpy excel Users Bob Desktop wb1 xlrd open workbook excel assignment3 xlsx sh1 wb1 sheet by index 0 colA co
  • 将 2D 数组追加到 3D 数组,扩展第三维

    我有一个数组A有形状的 480 640 3 和一个数组B有形状 480 640 如何将这两个附加为一个具有形状的数组 480 640 4 I tried np append A B 但它不保留维度 而axis选项导致ValueError a
  • 对 numpy 数组中存在的元组中的列进行切片

    我已将一个文本文件导入到 numpy 数组中 如下所示 data np genfromtxt f dtype None delimiter names None 其中 f 包含我的 csv 文件的路径 现在数据包含以下内容 array 53
  • 使用 scipy 的solve_bvp 求解 BVP

    我有一个由 3 个微分方程组成的系统 我相信从代码中可以明显看出 具有 3 个边界条件 我设法在 MATLAB 中用一个循环来解决这个问题 一点一点地改变最初的猜测 而不会在程序即将返回错误时终止程序 然而 关于scipy s solve
  • 如何提高大规模数据帧上 lambda 函数的性能

    我有一个df超过数亿行 latitude longitude time VAL 0 39 20000076293945312500 140 80000305175781250000 1972 01 19 13 00 00 1 2000000
  • numpy.empty 给出非空数组

    当我使用创建一个空的 numpy 数组时foo np empty 1 结果数组包含一个 float64 gt gt gt foo np empty 1 gt gt gt foo array 0 gt gt gt type foo 0
  • 并行 dask for 循环比常规循环慢?

    如果我尝试使用 dask 并行化 for 循环 它最终会比常规版本执行得慢 基本上 我只是按照 dask 教程中的介绍性示例进行操作 但由于某种原因它在我这边失败了 我究竟做错了什么 In 1 import numpy as np from
  • IndexError:索引 10 超出尺寸为 10 的轴 0 的范围

    我正在以数字方式为 x 网格和 x 向量以及时间网格设置网格 但我再次设置了一个数组x 位置 只能在 0 到 20 之间并且t 时间 将从 0 到 1000 以便求解热方程 但每次我想要 例如 我将步数设置为 10 时 都会收到错误 Tra
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 如何使用 numpy 在二维数组上执行最大/平均池化

    给定一个 2D M x N 矩阵和一个 2D 内核 K x L 我如何返回一个矩阵 该矩阵是使用图像上给定内核进行最大或平均池化的结果 如果可能的话我想使用 numpy 注意 M N K L 可以是偶数也可以是奇数 并且它们不需要彼此完全整
  • 从一个数组中删除另一个数组中的元素

    假设我有这些二维数组A and B 我怎样才能从中删除元素A那些在B 集合论中的补集 A B A np asarray 1 1 1 1 1 2 1 1 3 1 1 4 B np asarray 0 0 0 1 0 2 1 0 3 1 0 4
  • 按年月分组并在 Python 中查找前 N 个最小值列

    基于来自的输出数据帧这个链接 https stackoverflow com questions 69931611 resample by month and find certain number of columns which hav
  • 如何根据内容从 numpy 数组中提取行?

    作为标题 例如 我有一个 2d numpy 数组 如下所示 33 21 1 33 21 2 32 22 0 33 21 3 34 34 1 我想根据第一列和第二列中的内容顺序提取这些行 在这种情况下 我想获得3个不同的2d numpy数组
  • 加速 Numpy 数组上的循环

    在我的代码中 我有一个 for 循环 它对多维 numpy 数组进行索引 并使用每次迭代时获得的子数组进行一些操作 看起来像这样 for sub in Arr do stuff using sub 现在使用完成的东西sub是完全矢量化的 所
  • 有没有办法降低 scipy/numpy 精度以减少内存消耗?

    在我的 64 位 Debian Lenny 系统 4GByte RAM 4GByte 交换分区 上 我可以成功执行以下操作 v array 10000 random 512 512 512 dtype np int16 f fftn v 但
  • 检查数组中是否有 3 个连续值高于某个阈值

    假设我有一个像这样的 np array a 1 3 4 5 60 43 53 4 46 54 56 78 有没有一种快速方法来获取 3 个连续数字都高于某个阈值的所有位置的索引 也就是说 对于某个阈值th 得到所有x其中 a x gt th
  • IndexError:布尔索引与维度 0 上的索引数组不匹配

    在我将 Numpy 更新到 1 13 1 之前 我的代码工作正常 现在我收到以下错误 IndexError boolean index did not match indexed array along dimension 0 dimens
  • Python:numpy.corrcoef 内存错误

    我试图计算从文本中读取的大量数据之间的相关性 对于非常大的数据集 程序会给出内存错误 谁能告诉我如何解决这个问题 谢谢 以下是我的代码 enter code here import numpy from numpy import from
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat

随机推荐

  • hg忘记和hg删除有什么区别?

    我希望 Mercurial 从存储库的当前状态中删除多个文件 但是 我希望这些文件存在于以前的历史记录中 How do forget and remove不同 他们能做我想要的吗 hg forget 只是 的简写hg remove Af 来
  • Visual Studio 2022:防止解决方案资源管理器中折叠文件夹(2)

    这是对中报告的问题的后续行动这个问题同名 我在 Visual Studio 2022 中遇到同样的问题 对象在几秒钟后或单击另一个对象时崩溃 提供的答案是更改 CodeMaid 中的设置 但我尚未加载 CodeMaid 并且遇到了相同的问题
  • R 中有处理命令行选项的包吗?

    R 中有处理命令行选项的包吗 I know commandArgs 但这太基础了 其结果基本上相当于argc and argv in C 但除此之外我还需要一些东西 就像boost program options in C or GetOp
  • 如何将外部文件中的 Fortran 代码插入到单独的代码中?

    我想让我的代码获取在另一个文档中编写的代码 阅读它 然后像在代码中编写一样使用它 假设我们有以下内容 MODULE samplemod CONTAINS FUNCTION sillysum boudary function RESULT c
  • 使用 Trigger.IO/PhoneGap 在 UIWebView 中通过 focus() 事件自动显示键盘

    据推测 自 iOS 6 以来 这是不可能的 您可以在 iOS 6 中设置 UIWebView 的 KeyboardDisplayRequiresUserAction NO 我正在使用 html 5 webview Trigger IO 并构
  • 为什么 foreach 循环不适用于 JSON 数组

    当我尝试的时候解析 json 数组 工作室给了我一个编译错误 指出foreach 不适用于 json 数组 虽然我知道如何获取所有对象并解析 我只是想知道为什么foreach不适用即使 json 数组是一个数组 对于每个循环的工作方式如下
  • 如何在大型排序数组中高效地找到最接近另一个值 X 的值

    对于已排序的列表 如何找到接近给定数字的最小数字 例如 mysortedList 37 72 235 645 715 767 847 905 908 960 如何找到小于或等于700的最大元素quickly 如果我有1000万个元素 那么线
  • 如何在 Laravel 中显示 GIF

    我正在使用 Firefox 浏览器 尝试了所有PNG s JPG一切都在工作 除了GIF 事情是这样的 如果我测试一下http localhost pepsi gif GIF实际上正在工作并显示 但当我在里面尝试时HTML 图片标签它不显示
  • 匹配两个不同标记之间的任意字符串

    我正在尝试匹配两个不同标记之间的字符串的一部分 它们可能是字符串中多次出现的标记 示例文本 标记为斜体 要匹配的文本为粗体 This is 开始比赛 示例文本 结束比赛 和一些 开始比赛 代币和普通 结束比赛 text 我有以下正则表达式
  • 有人玩过NIO管道来过滤/拦截System.out吗?

    按照建议here我想在选择器循环内执行此操作 我真正想要的是在选择器循环内读取写入系统的内容 EDIT1 我编写了一个完整的解决方案 只是为了发现您无法使用 System setOut 重定向 GC 日志 它只是直接转到 FD 或其他东西
  • 使用 geom_bar 彼此相邻的两个条

    我有以下数据框 df decades marxftext durkftext 1 1970 1979 3009 393 2 1980 1989 3468 469 3 1990 1999 3420 657 4 2000 2009 3162 7
  • 流体宽度元素的等高行

    我用过克里斯 科伊尔斯行中的等高块之前多次使用过 jQuery 脚本 而且效果总是很好 话虽这么说 我总是开发针对特定分辨率构建的网站 这次我正在开发一个响应式网站 主容器具有流体宽度 因此 我遇到了问题 但找不到解决问题的方法 克里斯在他
  • As.vector 不会将 data.frame 子集转换为向量

    下面我提供了我一直在研究的一些代码片段 我已经成功地将字符串作为表格读取 我的表中存在一些子集 我希望在其上使用中值 函数 根据我所做的研究和我自己的经验 median 没有为 data frame 或 data frame 的子集定义行为
  • C# 的鼠标钩子

    我正在尝试模拟 硬件 鼠标点击 因为某些软件似乎会阻止来自 PostMessage 的输入 我知道有 SendInput 但这不是一个选项 因为我也需要它在后台窗口中兼容 解决方案似乎是一个低级鼠标钩子 但我四处搜索 除了记录器之外找不到任
  • 满足特定要求的密码正则表达式

    我要编写一个正则表达式来满足以下要求 至少一个字符 至少一位数字 长度必须为 8 至少一个特殊字符 可以是任意特殊字符 前三个很简单 但找不到一种方法来限制至少特殊字符 任何可能的特殊字符 例如 gt etc 您可以通过组合前瞻来解决这些问
  • JavaScript 的客户端 DOM 打开重定向

    我在扫描以下代码时遇到客户端 DOM 打开重定向安全问题 问题出现在我初始化变量 myPath 和 myHost 的位置 我无法理解它如何受到网络钓鱼攻击以及如何修复它 有人可以帮忙吗 var query this value var my
  • Symfony Doctrine 找不到要加载的装置

    我从 Symfony 3 4 开始 但负载夹具有问题 当我执行时php bin console doctrine fixtures load然后我收到消息 In LoadDataFixturesDoctrineCommand php lin
  • PHP PDO 潜在的逻辑错误

    我是 PHP 新手 想知道为什么这段代码不向数据库插入任何内容 返回 0 我确信这一定是一个逻辑错误 因为我没有收到任何错误消息 class DbConnection protected db conn public db host loc
  • C# 线程问题

    我正在做的是从先前的按钮单击动态创建的列表视图 然后 ti 启动一个后台工作程序 其中应清除列表视图并每 30 秒用新信息填充 iistview 我不断得到 跨线程操作无效 从创建它的线程以外的线程访问控制 listView 2 priva
  • Numpy 广播

    下面的代码给出了 a 0 11 中的元素在数组 c 的第一行中出现了多少次 a c 0 我如何调整此代码 以便它对 c 中的所有行 而不仅仅是 c 0 执行相同的操作 本质上是一个for循环 import numpy as np c np