好it's晚了,我不能再解决最简单的问题:替换“零柱”与值从numpy的阵列
我有“零列”的矩阵,这些列应改为
从另一阵列(同一列的索引),具有相同的列数的值:
a=np.array([[2,0,0,0],[1,0,2,0],[1,0,5,0]])
b=np.array([0.3,0.4,0.6,0.8])
结果应该是:
c=np.array([[2,0.4,0,0.8],[1,0.4,2,0.8],[1,0.4,5,0.8]])
我想:
#searches for an entire zero-column indexes
wildcard_cols = np.nonzero(a.sum(axis=0) == 0)
我得到:
out: wildcard_cols=array([[1, 3]], dtype=int64)# that is right
的话,我想从这个输出获取列表遍历列表中的项目
wildcard_cols=np.asarray(wildcard_cols)
wildcard_cols=wildcard_cols.tolist()
,但我得到列表中的列表(?) out = [[1,3]]
所以我不能做:
for item in wildcard_cols:
a[:,item]=b[item]
#this does not work because i want to change every value in the column
我想也许复杂的,但也许有人找到一个快速的解决方案......
为什么你用'0.3'和'0.8'填充?如果它们对齐,它会不会是“0.4”和“0.8”? – DSM
你是对的,我编辑了问题 – Hiatus