python - 使用特定值初始化特定形状的numpy数组

标签 python arrays numpy indexing initialization

你好 numpy 初学者:

我正在尝试创建一个形状为 NxWxHx2 的数组,并使用相应的索引值进行初始化。在这种情况下 W=H 总是。

例如:对于形状为 Nx5x5x2 的数组,如果我将其写在纸上,它应该是:

N次以下


(0,0)(0,1)(0,2)(0,3)(0,4)

(1,0) (1,1) (1,2) (1,3) (1,4)

(2,0) (2,1) (2,2) (2,3) (2,4)

(3,0) (3,1) (3,2) (3,3) (3,4)

(4,0) (4,1) (4,2) (4,3) (4,4)


我查看了“arange”fkt 以及使用“newaxis”扩展数组,但无法获得所需的结果。

对于糟糕的格式感到抱歉。

感谢您的帮助!

编辑:我想到了这样的东西,但它并不好。 对于形状为 1x3x3x2 的数组

t = np.empty([1,3,3,2])
for n in range(1):
    for i in range(3):
        for p in range(3):
            for r in range(2):
                if r == 0:
                    t[n,i,p,r]=i
                else:
                    t[n,i,p,r]=p    

最佳答案

一种方法是分配一个空数组

>> out = np.empty((N, 5, 5, 2), dtype=int)

然后使用广播,例如

>>> out[...] = np.argwhere(np.ones((5, 5), dtype=np.int8)).reshape(5, 5, 2)

>>> out[...] = np.moveaxis(np.indices((5, 5)), 0, 2)

>>> out[..., 0] = np.arange(5)[None, :, None]
>>> out[..., 1] = np.arange(5)[None, None, :]

关于python - 使用特定值初始化特定形状的numpy数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50024181/

相关文章:

c - 一遍又一遍地在String中使用struct(C语言)

Python 与 MATLAB 在算法上的性能

python - 从深度嵌套列表中的数组中提取元素,保留列表结构

python - 带有 Eclipse 的 OpenCV 2.3.1 Python 显示 synatx 错误但仍在运行

python - 国际化单位系统

python - 如果 Python 中的值为空、 "null"或 None,则删除字典列表中的项目

c - 两个数组中两个元素的最小总和,使得索引不相同

javascript - react : Having some trouble passing multiple pieces of state.

python - Numpy 和 diff()

python - 方程组的解返回空集