gpt4 book ai didi

python - 将 (n,m) 形 numpy 数组转换为 (n,m,1,1) 形数组

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:27 27 4
gpt4 key购买 nike

我的起点是一个 pandas 数据框,我将其转换为一个 numpy 数组:

> df = pd.DataFrame({"a":[1,2,3,4],"b":[4,5,6,7],"c":[7,8,9,10]})
> arr = df.as_matrix()

数组现在是形状为 (4,3) 的二维:

> arr
array([[ 1, 4, 7],
[ 2, 5, 8],
[ 3, 6, 9],
[ 4, 7, 10]])

我想做的是通过有效映射每个奇异元素(如 f.x),将 arr 转换为其 4 维和 (4,3,1,1) 形状的等价物。 5[[5]]

新的 arr 将是:

array([[ [[1]],  [[4]],  [[7]]  ],
[ [[2]], [[5]], [[8]] ],
[ [[3]], [[6]], [[9]] ],
[ [[4]], [[7]], [[10]] ]])

我该如何优雅快速地做到这一点?

最佳答案

执行 arr[:, :, None, None] 添加两个额外的轴。这是一个例子:

In [5]: arr[:, :, None, None].shape
Out[5]: (4, 3, 1, 1)
indexing中的

Nonenp.newaxis的同义词,它选择数据并添加一个新的轴。很多人更愿意把上面的写成

arr[:, :, np.newaxis, np.newaxis]

出于易读性原因

关于python - 将 (n,m) 形 numpy 数组转换为 (n,m,1,1) 形数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051959/

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