在矩阵上使用 ufunc.at

2024-01-23

假设我有以下 numpy 数组:

>>> a=np.zeros(10)
>>> a
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.])

我可以用numpy.ufunc.at http://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.at.html就地修改该数组:

>>> np.add.at(a, [0,3], 2)
>>> a
array([ 2.,  0.,  0.,  2.,  0.,  0.,  0.,  0.,  0.,  0.])

如果我现在尝试使用矩阵,我认为该方法不起作用:

>>> m=np.zeros(16).reshape(4,4)
>>> m
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
>>> np.add.at(m, [(0,0),(1,1)], 2)
>>> m
array([[ 0.,  4.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])

我的期望基于提供元组列表[(0,0),(1,1)]将会:

      [[ 2.,  0.,  0.,  0.],
       [ 0.,  2.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]]

关于我用作索引列表的任何建议numpy.ufunc.at得到那个矩阵?


如果你想做多维索引,你不需要传递索引元组列表;而是传递索引元组列表。您传递一个索引列表(或索引数组)的元组。

indices = ([0, 1], [0, 1])
np.add.at(m, indices, 2)

indices[0]给出您想要修改的单元格的所有第一个坐标,并且indices[1]给出所有第二个坐标。这是一个例子:

In [10]: a = numpy.zeros([4, 4])
In [11]: a
Out[11]: 
array([[ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.]])
In [12]: indices = ([0, 3], [2, 1])
In [13]: numpy.add.at(a, indices, 2)
In [14]: a
Out[14]: 
array([[ 0.,  0.,  2.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.],
       [ 0.,  2.,  0.,  0.]])

我不完全确定为什么它会这样工作。我想一旦您掌握了它的窍门,它可能会更方便,或者它可能会使规则在某种程度上更加内部一致,但我在多维索引方面没有足够的经验,无法以某种方式说。

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

在矩阵上使用 ufunc.at 的相关文章

  • 在python的telnetlib中检测关闭的连接

    我正在使用 python 的telnetlib http docs python org library telnetlib html连接到远程 telnet 服务器 我很难检测连接是否仍然打开 或者远程服务器是否将其关闭 下次我尝试读取或
  • 如何在Python和C++之间交换数据[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想用 Python 编写一个程序 读取 2 个数字 从文本文件或用户输入 调用一个接受 2 个参数 这 2 个数字 的 C 函数 将
  • Python 中的“断言”有什么用?

    什么是assert意思是 它是如何使用的 The assert语句几乎存在于所有编程语言中 它有两个主要用途 它有助于在程序早期发现问题 原因明确 而不是等到其他操作失败时才发现问题 例如 Python 中的类型错误在实际引发错误之前可能会
  • df.drop(如果存在)

    下面是一个函数 它接受一个文件并删除列名row num start date end date 问题是并非每个文件都有这些列名 因此该函数返回错误 我的目标是更改代码 以便删除这些列 如果存在 但如果某个列不存在则不会返回错误 def re
  • 在Python中从字符串中删除除字母数字字符之外的所有内容

    使用 Python 从字符串中去除所有非字母数字字符的最佳方法是什么 中提出的解决方案这个问题的 PHP 变体 https stackoverflow com questions 840948可能会进行一些小的调整 但对我来说似乎不太 Py
  • ValueError:展开时包装器循环

    我的示例代码中的 Python3 测试用例 文档测试 失败 但在 Python2 中同样可以正常工作 test py class Test object def init self a 0 self a a def getattr self
  • 在Python中使用readlines?第一次

    我有一个包含数据列的文本文件 我需要将这些列转换为单独的列表或数组 这就是我到目前为止所拥有的 f open data txt r temp for row in f readlines Data row split temp append
  • 来自 ANTLR 解析树的 Python AST?

    我找到了一个ANTLR4 Python3 语法 https github com bkiers python3 parser 但它会生成一个解析树 该树通常有许多无用的节点 我正在寻找一个已知的包来从该解析树获取 Python AST 这样
  • Python 有限边界 Voronoi 单元

    我正在尝试改编我在 stackoverflow 上找到的代码来创建具有有限边界的 voronoi 单元 我发现下面的代码https stackoverflow com a 20678647 2443944 https stackoverfl
  • Numpy 附加到一个空数组

    第一种情况 gt gt gt import numpy as np gt gt gt x np array 0 gt gt gt x np append x 1 gt gt gt x array 0 1 x包含 2 个元素 这是为什么 第二
  • python中使用argsort进行排序

    我尝试对数组进行排序 import numpy as np arr 5 3 7 2 6 34 46 344 545 32 5 22 print unsorted print arr np argsort arr print sorted p
  • cython.parallel.prange 中的 cython 共享内存 - 块

    我有一个函数foo它以指向内存的指针作为参数 并写入和读取该内存 cdef void foo double data data some index int some value double do something dependent
  • python中的“如果不是”条件语句[重复]

    这个问题在这里已经有答案了 if not start new next None return new 如果不是 是什么意思 这段代码什么时候执行 这和说的是一样的吗 if start None 那么做点什么 if是声明 not start
  • 从 pandas 数据帧中提取阶段/段以及相应的时间戳

    我有以下数据框 Sleep Stage Time hh mm ss Event Duration s 0 SLEEP S0 23 27 14 SLEEP S0 30 1 SLEEP S0 23 27 44 SLEEP S0 30 2 SLE
  • Jinja2 为 Google App Engine 模型返回“None”字符串

    Google App Engine 模型 如下所示 from google appengine ext db import Model class M Model name db StringProperty 然后在从 Django 视图调
  • 为什么我必须在 pybson (=bson, GitHub:py-bson) 之后安装 pymongo 才能成功导入 pybson?

    编辑 将问题放在网上很长时间后 我注意到这是一个衍生产品无法使用 pymongo 2 2 连接到 MongoDB 2 0 5 数据库 https stackoverflow com questions 10603754 cant conne
  • Pandas .apply() 函数中的异常处理

    如果我有一个数据框 myDF DataFrame data 11 11 22 2A 33 33 columns A B 给出以下数据帧 从 stackoverflow 开始 对于数据帧的图像没有足够的声誉 A B 0 11 11 1 22
  • 以任意深度嵌套 defaultdict

    我想嵌套任意数量的默认字典 如下所示 from collections import defaultdict D defaultdict lambda defaultdict int 正如所描述的那样工作正常earlier https st
  • 缩放插图中不同的 x 和 y 比例,matplotlib

    我正在尝试使用 matplotlib 制作插图 目前我有类似最后一个答案的内容如何缩放图像的一部分并插入到 matplotlib 中的同一图中 https stackoverflow com questions 13583153 how t
  • 在 Raspberry Pi 4 上的多个输出设备上播放多个 mp3 文件

    我需要 4 8 个同时播放立体声音频音乐频道 连续播放 SD 卡上特定文件夹中的 mp3 音乐 Working 板载 3 5 音频插孔 USB声卡正常播放音乐 Problem 但一旦我尝试在树莓派上使用带有 USB 声卡的第三个音频输出 其

随机推荐

  • GCC 生成的 ARM 和 x86 汇编代码的差异

    让我们看一个简单的 C 代码来设置寄存器 int main int a int 111111 a 0x1000 return 0 当我使用 1 级优化为 ARM arm none eabi gcc 编译此代码时 汇编代码类似于 mov r2
  • travis 构建失败,因为缺少 devtools

    我正在尝试设置 travis 构建 但失败并出现以下错误 export PKG TARBALL Rscript e pkg lt devtools as package cat paste0 pkg package pkg version
  • Django JavaScript 文件

    在 Django 应用程序中 我应该将 javascript jquery 脚本放在哪里 与其他静态媒体一起使用 请参阅此处了解更多信息 http docs djangoproject com en dev howto static fil
  • 使用 Margin Auto 和 Center 将 Float Left Div 居中

    我知道这个问题已经被问过很多次了 将 div 居中对齐 https stackoverflow com questions 1740587 float a div to center 不过 我遵循他们的建议
  • XNA 的 CPU 使用率高

    我今天刚刚注意到 当我编译并运行一款新的 XNA 4 0 游戏时 其中一个 CPU 线程以 100 的速度运行 并且帧速率下降到 54 FPS 奇怪的是 有时它可以在 60 FPS 下运行 但随后就会下降到 54 FPS 我以前没有注意到这
  • 在 OPTIONS 响应后使 fetch API 与 CORS 一起使用

    我正在尝试从我们的 API 获取数据 API 已启用 CORS 支持并对 OPTIONS 请求返回以下响应 Access Control Request Headers content type Access Control Allow O
  • requireJS 中的上下文和嵌套模块

    我在 requireJS 中的上下文方面遇到了一些麻烦 我想要的是在配置阶段 在加载任何模块之前 创建一个上下文 mycontext 然后始终保留该上下文 这很复杂 因为不幸的是 我需要 base js contextReq require
  • 如何按组应用函数?

    我来自另一个topic https stackoverflow com questions 63529481 group by function with pandas dataset cronbachs alpha with groupe
  • Spock:模拟类的方法未匹配

    我能够通过我的代码的简化版本的测试 感谢 cgrim Spock 方法未被识别为调用 https stackoverflow com questions 53254616 spock method not recognized as an
  • D3JS SVG 视图框属性

    我将 svg 附加到我的 div 并应用 viewBox 属性 0 0 100 100 我的控制台显示 d3 js 的错误 Error Invalid value for
  • 不引人注目的验证 C# MVC Razor

    是否可以进行不显眼的验证 使某个字段成为必填字段 但前提是其他属性发生更改 例如 Required public Decimal Income get set Required public Decimal Tax get set Requ
  • 错误:无法解析 setupPlatform 的所有参数:(?, [object Object], [object Object])

    我将 Angular 更新到版本 8 但遇到了一个小问题 当我使用离子服务启动应用程序时 Error Can t resolve all parameters for setupPlatform object Object object O
  • 在Python中模拟assert_used_with

    我无法理解为什么以下代码未通过 test py import mock import unittest from foo import Foo class TestFoo unittest TestCase mock patch foo B
  • 在 Angular 单元测试中模拟 ngResource

    我有一个ngResourceMockFactory看起来像这样 function use strict angular module app factory NgResourceMock ngResourceMockFactory ngRe
  • Jupyter Lab 显示小部件的问题(javascript 错误)

    我在新 PC 上复制 Jupyter Lab 安装时遇到问题 它在我的前一个上工作得很好 我无法显示简单的小部件 例如 ipywidgets 或 ipyvuetify 中的复选框 我检查了 jupyter widgets 是否已通过 jup
  • 跟踪源代码变体

    我很快就开始维护一系列包含相同嵌入式软件变体的产品 由于我已经使用 git 一年了并且非常欣赏它 所以我很可能使用它来进行源代码控制 我可以看到多种用于维护固件变体的选项 但没有一个让我太满意 您在自己的工作中应用了哪些最佳实践 我能想到的
  • 无法更改 iOS 7 (iPad) 上静态表视图单元格的背景颜色

    在 iPad 设备上运行时 我无法更改 iOS 7 上静态 UITableViewCells 的背景颜色 您可以通过以下设置轻松检查这一点 在 Xcode 5 中创建一个带有两个故事板的新通用项目 在每个故事板中 只放置一个控制器 表视图控
  • 代码 14:无法打开数据库

    我知道这个问题以前已经被问过 但是 问题是 相同的代码 用于数据库处理程序 适用于另一个应用程序 但不适用于我当前正在处理的应用程序 我什至通过检查设置中的权限来确保授予权限 这是日志猫 05 13 15 35 45 693 29696 2
  • 在 Java 8 中使用 Java 7 HashMap

    我已将 Java 应用程序更新到 Java 8 该应用程序严重依赖于 HashMap 当我运行基准测试时 我看到了不可预测的行为 对于某些输入 应用程序的运行速度比以前更快 但对于较大的输入 它的速度不断变慢 我检查了分析器 最耗时的操作是
  • 在矩阵上使用 ufunc.at

    假设我有以下 numpy 数组 gt gt gt a np zeros 10 gt gt gt a array 0 0 0 0 0 0 0 0 0 0 我可以用numpy ufunc at http docs scipy org doc n