改变二维数组的值

Changing values of array in 2nd dimension

我有这个数组:

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

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

y=x[:,:,:2]

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

new = numpy.array([[[10]], 
             [[11]],
             [[12]]])

final_arr= numpy.insert(y,2,new, axis=2)

但是它在每一行中添加了新数组。

需要添加到三维空间,所以只需要创建一个对应形状的数组即可。使用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]]])

干杯!