Python和行维度中矩阵的基本操作

时间:2015-03-10 15:03:06

标签: python-2.7 numpy matrix

我使用以下函数从二进制文件中读取矩阵:

def read_data(name,nx,ny):
    data = np.fromfile(name, count=nx*ny, dtype=np.float64).reshape((nx,ny), order='F')
    return data

例如:

A = read_data('myfile.xyz',10,1000)

在此示例中,A是10乘1000矩阵。如果我寻找A线的形状,我得到:

print A[0,:].shape
>>> (1000L,)

现在,假设我将A乘以10×10矩阵B:

A = np.dot(B,A)

A的尺寸仍然是10乘1000但是,当看到A的第一行的形状时,我得到:

print A[0,:].shape
>>> (1000L, 1L)

而不是

>>> (1000L,)

先前。谁能向我解释这里发生了什么?

1 个答案:

答案 0 :(得分:4)

我的猜测是你的“B”是矩阵类型,而不是普通的ndarray:

In [30]: a=np.random.randn(10,1000)

In [31]: b=np.random.randn(10,10)

In [32]: np.dot(b,a)[:,0].shape
Out[32]: (10,)

In [33]: np.dot(np.matrix(b),a)[:,0].shape
Out[33]: (10, 1)