如何用另一个数组创建或填充一个 numpy 数组?

Equ*_*Dev 5 python arrays numpy vectorization numpy-ndarray

例如,如何创建一个形状为 numpy 的数组[2, 2, 3],其中轴 2 处的元素是另一个数组[1, 2, 3]

所以我想做一些类似这个无效代码的事情:

a = np.arange(1, 4)
b = np.full((3, 3), a)
Run Code Online (Sandbox Code Playgroud)

结果是一个数组,如:

[[[ 1.  2.  3.]
  [ 1.  2.  3.]]
 [[ 1.  2.  3.]
  [ 1.  2.  3.]]]
Run Code Online (Sandbox Code Playgroud)

当然可以使循环填充像,但认为可能有一条捷径:

for y in range(b.shape[0]):
    for x in range(b.shape[1]):
        b[y, x, :] = a
Run Code Online (Sandbox Code Playgroud)

jot*_*asi 3

有多种方法可以实现这一目标。一种是按照 Divakar 在评论中指出的那样使用np.fullin 。np.full((2,2,3), a)或者,您可以使用np.tile它,它允许您通过重复输入数组指定的次数来构造数组。要构建您的示例,您可以执行以下操作:

import numpy as np

np.tile(np.arange(1, 4), [2, 2, 1])
Run Code Online (Sandbox Code Playgroud)