gpt4 book ai didi

python - 在循环中逐列修改 numpy 数组

转载 作者:行者123 更新时间:2023-11-28 22:54:49 28 4
gpt4 key购买 nike

有没有办法逐列修改循环内的 numpy 数组?

我希望这可以通过一些类似的代码来完成:

import numpy as n

cnA=n.array([[10,20]]).T
mnX=n.array([[1,2],[3,4]])
for cnX in n.nditer(mnX.T, <some params>):
cnX = cnX+cnA

我应该使用哪些参数来获取mnX=[[10,23],[12,24]]

我知道可以使用以下代码解决问题:

cnA=n.array([10,20])
mnX=n.array([[1,2],[3,4]])
for col in range(mnX.shape[1]):
mnX[:,col] = mnX[:,col]+cnA

然而,在 Python 中我们循环遍历修改过的对象,而不是索引,所以问题是 - 是否可以直接循环遍历列(需要就地修改)?

最佳答案

如你所知,我们中的一些人在 Python 中会在有帮助时迭代索引而不是修改的对象。尽管在 NumPy 中,作为一般规则,除非没有其他出路,否则我们不会显式迭代:对于您的问题,最简单的方法是跳过迭代并依赖广播:

mnX += cnA

如果你坚持迭代,我认为最简单的方法是迭代转置数组:

for col in mnX.T:
col += cnA[:, 0].T

关于python - 在循环中逐列修改 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17592924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com