Python中如何在数组指定位置插入全零行
解决Numpy数组按指定索引选行并补全零行的问题
问题描述
现有Numpy数组A,通过列表J选取特定位置的行生成新数组,但需要在J未覆盖的索引位置插入全零行,最终结果的行数与原数组A保持一致。
原代码与当前输出
原代码仅提取了J指定的行,未补全零行:
import numpy as np A=np.array([[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20], [21,22,23,24,25]]) J=[[1, 4]] result=np.array([list(A[i]) for i in J[0]]) print([result])
当前输出:
[array([[ 6, 7, 8, 9, 10], [21, 22, 23, 24, 25]])]
解决方案
直接创建与原数组形状一致的全零数组,再将J指定索引的行从A中赋值到对应位置,这种方法高效且简洁:
import numpy as np A = np.array([[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20], [21,22,23,24,25]]) J = [[1, 4]] # 初始化与A形状完全相同的全零数组 result = np.zeros_like(A) # 将J指定索引的行从A赋值到result对应位置 result[J[0]] = A[J[0]] print([result])
期望输出
运行上述代码后,输出与需求一致:
[array([[0, 0, 0, 0, 0], [ 6, 7, 8, 9, 10], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [21, 22, 23, 24, 25]])]
内容的提问来源于stack exchange,提问作者AEinstein
相关产品推荐
相关产品推荐

