【发布时间】:2019-10-11 13:18:05
【问题描述】:
我想将 4d 矩阵绘制为带有索引的 2d 矩阵:
[i][j][k][l] --> [i * nj + j][ k * nl + l]
我有一个工作版本here。
这是我想要的工作,但它不是很优雅。我研究了“重塑”,但这并不是我想要的,或者我使用不正确。
给定一个形状为 (100000,4) 的 4d 数组“r”,我要替换的相关 sn-p 是:
def transform(i,j,k,l, s1, s2):
return [i * s1 + j, k * s2 + l]
nx = 5
ny = 11
iedges=np.linspace(0,100, nx)
jedges=np.linspace(0, 20, ny)
bins = ( iedges,jedges,iedges,jedges )
H, edges = np.histogramdd(r, bins=bins )
H2 = np.zeros(( (nx-1)*(ny-1),(nx-1)*(ny-1)))
for i in range(nx-1):
for j in range(ny-1):
for k in range(nx-1):
for l in range(ny-1):
x,y = transform(i,j,k,l,ny-1,ny-1)
H2[x][y] = H[i][j][k][l]
在这种情况下,H2 的值将对应于 H 的值,但是条目
i,j,k,l 将显示为 i*ny + j, k * ny + l。
示例图:
【问题讨论】: