python - 如何将一维 numpy 数组重塑为具有行值的二维 numpy 数组
问题描述
假设我有一个数组:
x = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
我想将其转换为二维数组,但后续值按行输入:
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
我认为既然x.reshape(-1, 3)
按列填充值,那么x.reshape(3, -1)
会给我预期的输出,但事实并非如此。我显然可以这样做x.reshape(3, -1).T
,但我很想了解为什么reshape
无论参数顺序如何都会给我相同的结果,以及使用一种方法来做到这一点的正确方法是什么。
解决方案
您可以在 reshape to 'F'
('Fortran') 中使用 order 参数:
>>> x = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
>>> x.reshape(3,-1, order='F')
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]])
推荐阅读
- python - SimpleRNN的多维输入结果效率不高
- java - 如何根据 Java 中的 PayFrequency 找到当前是哪个 PayPeriodNumber?
- python - PIP 版本 VSCode
- mysql - 通过 Workbench 制作外键约束时出错
- wordpress - 需要将所有匹配模式的 URL 重定向到另一个 url
- python - Telethon:检查客户端实例是否已登录
- javascript - 如何在ckeditor 5中获取所选文本的HTML代码?
- amazon-web-services - 如何将烧瓶应用程序发送到 AWS Elastic Beanstalk?
- documentum - 具有相同名称的多个文件 - 区分它们以进行检索的最佳方法是什么
- arrays - vuejs列表渲染属性=索引?