2017-08-05 62 views
1

假设我有一个与2D数组的上三角形元素完全对应的扁平1D矢量。numpy/scipy:用1d向量的元素填充数组的上三角形?

需要将1D向量读入上面的三角形。

我可以做在python以下:

triu_flat = ... 
row,col = np.triu_indices(50) 

D = np.zeros((50,50)) 

i=0 
for r in row: 
    for c in col: 
     D[r,c] = triu_flat[i] 
     i++ 

但是,必须有办法通过numpy的/ SciPy的操作做到这一点。

+0

可以使用['np.triu_indices'(HTTPS得到上三角相应的指标://文档.scipy.org/doc/numpy/reference/generated/numpy.triu_indices.html),然后做一个任务。 – Kasramvd

回答

3

你可以简单地使用由triu_indices()返回的指标,不需要一个for循环:

import numpy 

data = numpy.arange(6) 
out = numpy.zeros((3, 3)) 
inds = numpy.triu_indices(len(out)) 
out[inds] = data 
相关问题