python - Python 是否支持按列声明矩阵?
问题描述
在Python numpy中声明矩阵时,我使用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()在这里仅用作虚拟对象。任何具有上述所需功能的功能都可以。
解决方案
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]])
推荐阅读
- c# - 使用 Web API 默认模型绑定器自定义属性名称?
- android - 由于互联网质量差,异步任务执行了2次-
- php - 我需要显示数据库中的最后一条记录。不要重复id
- assembly - MIPS:在基偏移寻址中使用标签
- android - 从链接启动应用程序时的 Android 消息、电子邮件应用程序行为
- service - 如何编辑 Kubernetes ServiceAccount 的命名空间
- javascript - 从节点 js 请求外部 url
- google-cloud-platform - BigQuery DML(插入/删除/更新)分区时间复杂度
- r - 在 glm 模型中,如何在给定剩余自变量和因变量的值的情况下获得自变量结果?
- excel - VBA将集合中的自定义对象添加到临时变量