改变二维数组的值



我有这样一个数组:

x = numpy.array([[[1, 2, 3]], 
[[4, 5, 6]],
[[7,8,9]]])

我想用其他数字替换元素3,6和9。我试图将数组分割为

y=x[:,:,:2]

,然后在数组y的末尾添加数组new

new = numpy.array([[[10]], 
[[11]],
[[12]]])
final_arr= numpy.insert(y,2,new, axis=2)

但是它在每行中添加new-array。

您需要将其添加到第三维度,因此只需创建具有相应形状的数组。您可以轻松地使用numpy.newaxis,如下所示:

import numpy as np
x = np.array(
[
[[1, 2, 3]], 
[[4, 5, 6]],
[[7,8,9]]
])
x[:, :, -1] = np.array([10, 11, 12])[:, np.newaxis]
x

array([[[ 1,  2, 10]],
[[ 4,  5, 11]],
[[ 7,  8, 12]]])

干杯!