替换 numpy 中的子数组

2023-11-23

给定一个数组,

>>> n = 2
>>> a = numpy.array([[[1,1,1],[1,2,3],[1,3,4]]]*n)
>>> a
array([[[1, 1, 1],
        [1, 2, 3],
        [1, 3, 4]],

       [[1, 1, 1],
        [1, 2, 3],
        [1, 3, 4]]])

我知道可以像这样简洁地替换其中的值,

>>> a[a==2] = 0
>>> a
array([[[1, 1, 1],
        [1, 0, 3],
        [1, 3, 4]],

       [[1, 1, 1],
        [1, 0, 3],
        [1, 3, 4]]])

是否可以对数组中的整行(最后一个轴)执行相同的操作?我知道a[a==[1,2,3]] = 11将工作并将匹配子数组的所有元素替换为 11,但我想替换不同的子数组。我的直觉告诉我写以下内容,但结果出现错误,

>>> a[a==[1,2,3]] = [11,22,33]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: array is not broadcastable to correct shape

总而言之,我想要得到的是:

array([[[1, 1, 1],
        [11, 22, 33],
        [1, 3, 4]],

       [[1, 1, 1],
        [11, 22, 33],
        [1, 3, 4]]])

...当然,一般来说,n 比 2 大很多,并且其他轴也比 3 大,所以如果不需要,我不想循环它们。


更新:[1,2,3](或我正在寻找的任何其他内容)并不总是位于索引 1。一个例子:

a = numpy.array([[[1,1,1],[1,2,3],[1,3,4]], [[1,2,3],[1,1,1],[1,3,4]]])

您可以使用更高的性能来实现这一点np.all检查所有列是否都有True进行比较的值,然后使用创建的掩码替换这些值:

mask = np.all(a==[1,2,3], axis=2)
a[mask] = [11, 22, 23]

print(a)
#array([[[ 1,  1,  1],
#        [11, 22, 33],
#        [ 1,  3,  4]],
# 
#       [[ 1,  1,  1],
#        [11, 22, 33],
#        [ 1,  3,  4]]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

替换 numpy 中的子数组 的相关文章

随机推荐

  • 嵌套字典到嵌套转发器 asp.net c#

    我正在制作一个 asp page 它将显示有关公司资产的分层信息 为了获取数据 我使用了 lambda 表达式 FASAssetInfoDataContext fasInfo new FASAssetInfoDataContext var
  • Imagemagick仅使用一个核心

    我正在运行一个 8 核的 Ubuntu 服务器 然而 imagemagick 始终只使用 1 个单核 跑步identify version返回 Version ImageMagick 6 6 9 7 2012 08 17 Q16 http
  • 从 OWL 本体到 Neo4j 图形数据库的映射

    我正在与 OWL 合作 创建了一个非常大的本体 我使用曼彻斯特大学开发的OWL API http owlapi sourceforge net 问题是 只有使用 OWL API 本体才会加载到内存中 有两种有价值的解决方案可以将数据从本体传
  • 滚动视图没有完全向下滚动

    我正在构建一个类似聊天的应用程序 它使用滚动视图在屏幕上显示用户输入的文本 我正在做的是随着更多文本附加到屏幕上 自动向下滚动滚动视图 我在用着 ScrollView my scrollview ScrollView findViewByI
  • Android自定义按钮,里面有imageview和textview?

    我正在寻找创建一个自定义按钮 理想情况下 该按钮左侧有一个图像 右侧有一个文本视图 我将如何实现这个目标 最快的方法 创建可点击的视图 其中包含 ImageView 和 TextView 并以可绘制按钮作为背景
  • MSVC - 停止标题中的警告

    我正在将 MSVC 与 CMaked 项目一起使用 因此 我在 MSVC 上启用了许多为 gcc 和 clang 启用的标志 然而 Wall 警告级别让我有些痛苦 它警告我包含头文件中的各种内容 例如 stdio h 和 boost 头文件
  • jquery - 检测div的底部是否接触浏览器窗口的底部?

    给定页面上的 div 如何检测div何时滚动到浏览器窗口底部的位置 与浏览器窗口底部齐平 我认为上面的答案不起作用 因为 offset top 是 div 和文档顶部之间的空间 并且不是可变的 这对我有用 var a mydiv offse
  • matplotlib:使图例键成为方形

    我正在使用 matplotlib 并且希望在制作条形图时将图例中的键更改为正方形而不是矩形 有没有办法指定这一点 我现在拥有的 我想要的是 Thanks 如果您想要一个非常快速和肮脏的解决方案来获得近似平方 可能需要根据您的绘图进行一些微调
  • 如何在Java中执行无符号到有符号的转换?

    假设我从输入设备读取了这些字节 6F D4 06 40 该数字是毫弧秒格式的经度读数 最高位 0x80000000 基本上始终为零 并且在本问题中被忽略 我可以轻松地将字节转换为unsigned整数 1876166208 但是如何将该无符号
  • 作为好友的模板参数

    在 C 03 中 以下内容是非法的 尽管某些编译器支持它 template
  • 如何判断给定的URL链接是视频还是图片?

    我正在尝试获取用户输入的给定 URL 并确定该 URL 是否指向图像或视频 示例用例 当用户粘贴 YouTube 视频的 URL 时 保存时页面将自动显示嵌入式 YouTube 播放器 当用户在 Flickr 中发布图片的 URL 时 在保
  • 从服务器获取数据后如何将数据存储在房间数据库中

    我在我的 android 应用程序中使用 Retrofit2 和 Rxjava2 作为网络库 使用 NodeJS 和 MongoDB 作为后端服务 我想从服务器获取数据并将数据存储在房间数据库中 以便用户再次打开应用程序时它会从房间获取数据
  • 模型视图投影矩阵的用途

    我们使用模型视图投影矩阵的目的是什么 为什么着色器需要模型视图投影矩阵 模型 视图和投影矩阵是三个独立的矩阵 模型从对象的局部坐标空间映射到世界空间 从世界空间到相机空间的视图 从相机到屏幕的投影 如果您组合了所有三个 则可以使用一个结果从
  • wait((int *)0) 的含义

    一个使用这样的等待函数的程序是 include
  • android Zoom-to-Fit All Markers on Google Map v2 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何放大 缩小地图视图以覆盖所有标记 我正在审查 sdk 中给出的 gmap V2 示例
  • 如何配置分页codeigniter?

    我尝试使用CodeIgniter进行分页 根据Codeigniter的手册 它应该很简单 即使在示例中是这样的 第一个 最后一个 config total rows this gt searchdesc model gt queryallr
  • 调用SKPaymentQueue RestoreCompletedTransactions,无响应

    这里的用例是用户从未购买过我的应用内购买 但点击了 恢复 按钮 我想让用户知道恢复失败 因为没有什么可恢复的 问题是我没有收到任何事件 所以我不知道发生了什么 当我的用户点击界面中的 恢复 按钮时 我调用 SKPaymentQueue de
  • 使用 json 填充下拉列表

    我有包含 id 和 name 列的 SQLite 表 我从 autocomplete php 页面返回这些行的数组 例如 json 如何使用 jquery 和 JavaScript 使用此 json 填充选项 下拉列表 我是 JavaScr
  • 如何解决构建过程中 Android 库自定义属性和包名称重新映射?

    随着时间的推移 我们的 Android 项目已经扩展了很多 现在我们正在从同一源代码树创建多个品牌 APK 由于 Android 的包命名要求 这变得具有挑战性 我们将所有共享代码都放在 Android 库项目中 该项目包含在主应用程序项目
  • 替换 numpy 中的子数组

    给定一个数组 gt gt gt n 2 gt gt gt a numpy array 1 1 1 1 2 3 1 3 4 n gt gt gt a array 1 1 1 1 2 3 1 3 4 1 1 1 1 2 3 1 3 4 我知道可