python - numpy 数组形状更改/扩展

标签 python arrays numpy

我试图弄清楚如何更改数组,例如:

a = np.array([[1,2,3],[4,5,6],[7,8,9]])
a.shape
(3,3)

进入:
a = np.array([[[1,255,255],[2,255,255],[3,255,255]],
[4,255,255],[5,255,255],[6,255,255]],
[7,255,255],[8,255,255],[9,255,255]]])
a.shape
(3,3,3)

基本上转动单个元素 1[1, 255, 255]
我玩过 reshape但我似乎无法在没有缓慢的情况下获得执行此操作的逻辑 for环形。

最佳答案

一种解决方案是创建一个所需形状的新数组,填充 255 s 使用 np.full ,然后使用来自 a 的值填充每个内部列表的索引 0 值.

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.full((3, 3, 3), 255)
b[:, :, 0] = a

输出是
array([[[  1, 255, 255],
        [  2, 255, 255],
        [  3, 255, 255]],
       [[  4, 255, 255],
        [  5, 255, 255],
        [  6, 255, 255]],
       [[  7, 255, 255],
        [  8, 255, 255],
        [  9, 255, 255]]])

关于python - numpy 数组形状更改/扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61911868/

相关文章:

python - 在 pandas df 中设置索引而不创建重复列

javascript - 当两个数组之间找到匹配项时停止迭代并返回 true

c - 通过引用将二维数组传递给函数

Javascript 使用 JSON 将对象推送到 cookie

python - 为什么pandas rolling使用单维ndarray

python - pandas 数据框中的随机选择

python - 成对距离和残差计算优化

python - 将参数传递给 side_effect 函数以在 unittest.mock 中打补丁

python - 在一定范围内生成随机Unicode

python - 如何在Python中纠正像 "\u8bf8\u845b\u4eae"这样的unicode字符串?