是否可以在python中创建动态矩阵?我有大量的数据,必须以矩阵形式表示。目前它将具有283228行和193886列。
我希望能够仅通过指定行数和列数来初始化没有值的矩阵。
我应该能够将行或列动态添加到现有矩阵中。
最后,我应该能够添加这样的值
Matrix[row][column] = value
答案 0 :(得分:0)
如果您有巨大的向量/矩阵,请使用numpy!
如果您事先知道尺寸,则可以执行以下操作:
nrow, ncol= 4,10
M0 = np.zeros((nrow,ncol))
vx = np.arange(nrow) + 10
vy = np.arange(ncol) + 10
M0[2,:] = vy
M0[:,5] += vx
M0
array([[ 0., 0., 0., 0., 0., 10., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 11., 0., 0., 0., 0.],
[10., 11., 12., 13., 14., 27., 16., 17., 18., 19.],
[ 0., 0., 0., 0., 0., 13., 0., 0., 0., 0.]])
如果您事先不知道尺寸,可以在将某些矢量作为vx或vy时进行检查:
nx = vx.shape[0]
ny = vy.shape[0]
nx,ny
(4, 10)
如果您确实想从一个空矩阵开始,则可以执行以下操作:
M1 = np.array([])
M1 = np.hstack((M1,vy))
M1
array([10., 11., 12., 13., 14., 15., 16., 17., 18., 19.])
或:
M2 = np.r_['c',vx]
M2
matrix([[10],
[11],
[12],
[13]])
也许您应该更加精确地了解矩阵上需要哪种类型的动力学,并且-如@jonrsharpe所提到的-如果矩阵中的数据稀疏。