首页 > 解决方案 > Numpy切片变长矩阵

问题描述

我有一个形状为 kx 3 的矩阵 a。基于第一个索引,我想对其进行切片和存储。第一个索引的值为 1:1000。当我完成切片时,我不知道如何存储它,因为切片的长度是可变的。例如,Y 形状为 (163, 2)、(55,2) 等。如何存储这些数据,以便我可以根据 X[0]、X[1]、...、X[999] 等索引进行调用?

def parseX(a, len):
  X = []
  for i in range(len):
    #Z = np.split(a, np.where(a[:, 0] == i+1))
    ### Split based on 0th column's value being (i+1)
    Y = a[ a[:,0] == i+1, :][:, [1,2]]
    print(Y.shape)
    #X[i] = Y
    #X[i].append(Y)
  #print(len(X))
  return X

标签: pythonnumpy

解决方案


只需 X.insert(i,Y) 即可。

def parseX(a, len):
  X = []
  for i in range(len):
    ### Split based on 0th column's value being (i+1)
    Y = a[ a[:,0] == i+1, :][:, [1,2]]
    print(Y.shape)
    X.insert(i, Y)
  #print(len(X))
  return X

推荐阅读