只是好奇心,是否有一种方法来自矩阵A:
A = [ [100, 200, 300, 400],
[111, 222, 333, 444],
[555, 666, 777, 888],
[500, 600, 700, 800] ]
获得如下所示的矩阵B:
B = [ [nan, nan, nan, nan],
[nan, 222, 333, nan],
[nan, 666, 777, nan],
[nan, nan, nan, nan] ]
不使用循环/循环?因为简单的裁剪显然改变了以前的矩阵维度,产生:
B = A[1:3,1:3]
>>> B = [ [222, 333],
[666, 777] ]
提前谢谢。
答案 0 :(得分:1)
创建一个nan的数组,然后从A中分配所需的值。
B = np.empty(A.shape)
B[:] = np.nan
B[1:3,1:3] = A[1:3,1:3]
print(B)
[[ nan nan nan nan]
[ nan 222. 333. nan]
[ nan 666. 777. nan]
[ nan nan nan nan]]
答案 1 :(得分:1)
认为你想要交叉点
import numpy
A = numpy.array([ [100, 200, 300, 400],
[111, 222, 333, 444],
[555, 666, 777, 888],
[500, 600, 700, 800] ])
B = numpy.array([ [222, 333],
[666, 777]])
C = numpy.zeros((4,4))
C[:] = numpy.nan
C[1:3, 1:3] = numpy.ones((2,2))
print C * A
输出
[[ nan nan nan nan]
[ nan 222. 333. nan]
[ nan 666. 777. nan]
[ nan nan nan nan]]