改变二维数组的值
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]]])
干杯!
我有这个数组:
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]]])
干杯!