gpt4 book ai didi

python - 使用 numpy.ones 作为数组的索引

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:17 25 4
gpt4 key购买 nike

我想将 matlab 代码翻译成 python 代码。 matlab 代码等效于以下玩具示例:

a = [1 2 3; 4 5 6; 7 8 9]
b = a(:, ones(1,3))

返回

a =

1 2 3
4 5 6
7 8 9

b =

1 1 1
4 4 4
7 7 7

我试着这样翻译:

from numpy import array
from numpy import ones

a = array([ [1,2,3], [4,5,6], [7,8,9] ])
b = a[:][ones((1,3))]

但它返回以下错误消息:

Traceback (most recent call last): File "example_slice.py", line 6, in b =a[:, ones((1,3))] IndexError: arrays used as indices must be of integer (or boolean) type

编辑:在这种特殊情况下,也许应该用零代替,但这不是这里的问题。该题涉及将包含相同索引的列表多次提供给数组 a 以获得与使用 Matlab 计算的数组相同的数组 b 的问题。

最佳答案

MATLAB 代码也可以写成(更地道也更清晰):

b = repmat(a(:,1),1,3);

In NumPy you'd write :

b = np.tile(a[:,None,0],(1,3))

(注意保留提取矢量的方向所需的)。

关于python - 使用 numpy.ones 作为数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56009608/

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