Python支持按列声明矩阵吗?

2024-06-16 11:46:05 发布

您现在位置:Python中文网/ 问答频道 /正文

pythonnumpy中,当声明矩阵时,我使用np.array([[row 1],[row 2],…[row n]])形式。这是按行声明矩阵。他们在Python中是否有按列声明矩阵的功能?我希望类似于-np.array([[col 1],[col 2],…[col n]],parameter='column-wise')这样就生成了一个包含n列的矩阵

我知道这样的事情可以通过转置来实现。但是有没有一种方法可以根据我提供的参数值将np.array([…],parameter='…')视为行或列

***np.array()。任何具有上述所需设施的功能都可以


Tags: 方法功能声明parameternpcolumn矩阵col
2条回答

在创建数组时,您可以使用numpy.transpose()而不是numpy.array(),因为numpy.tranpose()将任何“类似数组”的对象作为输入:

my_array = np.transpose ([[1,2,3],[4,5,6]])
print (my_array)

输出:

[[1 4]
 [2 5]
 [3 6]]
In [65]: np.array([[1,2,3],[4,5,6]])
Out[65]: 
array([[1, 2, 3],
       [4, 5, 6]])

有一整套concatenate函数,可以帮助您以各种方式连接数组

带有默认轴的stack的行为非常类似于np.array

In [66]: np.stack([[1,2,3],[4,5,6]], axis=0)
Out[66]: 
array([[1, 2, 3],
       [4, 5, 6]])

np.vstack也会这样做

但要制作专栏:

In [67]: np.stack([[1,2,3],[4,5,6]], axis=1)
Out[67]: 
array([[1, 4],
       [2, 5],
       [3, 6]])

np.column_stack([[1,2,3],[4,5,6]])也是这样

转置也是一个选项:np.array([[1,2,3],[4,5,6]]).T

所有这些“*stack”函数最终都使用了np.concatenate,因此值得您花时间学习直接使用它。您可能需要向输入添加尺寸

[66]是否(在封面下):

In [72]: np.concatenate((np.array([1,2,3])[:,None], np.array([4,5,6])[:,None]),axis=1)
Out[72]: 
array([[1, 4],
       [2, 5],
       [3, 6]])

相关问题 更多 >