Python中的动态矩阵?

时间:2019-02-09 16:37:45

标签: python

是否可以在python中创建动态矩阵?我有大量的数据,必须以矩阵形式表示。目前它将具有283228行和193886列。

我希望能够仅通过指定行数和列数来初始化没有值的矩阵。

我应该能够将行或列动态添加到现有矩阵中。

最后,我应该能够添加这样的值

Matrix[row][column] = value

1 个答案:

答案 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所提到的-如果矩阵中的数据稀疏。