我有这个问题,我正在尝试构建一个3D数组,我需要稍后覆盖例如。 [:,:,5]带有1D数组的值。我的数组在numpy
:
3D:
[[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]
[[ 0. 150. 10. 300. 25. 0.]
[ 1. 25. 2. 75. 7. 0.]
[ 4. 0. 0. 0. 0. 0.]
[ 5. 0. 0. 0. 0. 0.]]]
1D:
[ 1806. 1092. 150. 150. 2669. 150. 150. 150.
310. 7181.85]
..我想要的是这个:
3d[0][0][5] = 1d[0]
3d[0][1][5] = 1d[0]
3d[0][2][5] = 1d[0]
3d[0][3][5] = 1d[0]
3d[1][0][5] = 1d[1]
3d[1][1][5] = 1d[1]
3d[1][2][5] = 1d[1]
3d[1][3][5] = 1d[1]
等等。我一直在尝试这样的事情:
list_product_pricegroup[:,:,5] = migrete_array[:]
没有任何运气,希望有人能指导我朝着正确的方向前进。
答案 0 :(得分:2)
您的数组list_product_pricegroup
是10x4x6而migrete_array
是10的1-D向量。由于在赋值之前索引(5)数组list_product_pricegroup
,它现在是10x4矩阵。然后你需要将migrete_array
提升为大小为4x1的2-D数组进行广播,如下:
list_product_pricegroup[..., 5] = migrete_array[:, None]