python - Python 创建垂直 Numpy 数组
问题描述
我创建了一个代码,在其中从我的列表中创建一个数组,它必须是垂直的,就像一个向量,问题是使用 reshape 方法我什么也得不到。
import numpy as np
data = [[ 28, 29, 30, 19, 20, 21],
[ 31, 32, 33, 22, 23, 24],
[ 1, 34, 35, 36, 25, 26],
[ 2, 19, 20, 21, 10, 11],
[ 3, 4, 5, 6, 7, 8 ]]
index = []
for i in range(len(data)):
index.append([data[i][0], data[i][1], data[i][2],
data[i][3], data[i][4], data[i][5]])
y = np.array([index[i]])
# y.reshape(6,1)
这些情况有什么解决办法吗?谢谢你。
我正在寻找这样的东西:
解决方案
如果要将每一行视为一列,请通过以下任一方式转置数组:
index = data.T
index = np.transpose(data)
index = data.transpose()
index = np.swapaxes(data, 0, 1)
index = np.moveaxis(data, 1, 0)
...
的每一列index
将是一行data
。如果您只想一次访问一列,您也可以这样做。例如,要获取原始数组的第 3 行(第 4 行),可以使用以下任何方法:
y = data[3, :]
y = data[3]
y = index[:, 3]
您可以通过将结果显式重塑为一个来从结果中获取列向量:
y = y.reshape(-1, 1)
y = np.reshape(y, (-1, 1))
y = np.expand_dims(y, 1)
请记住,重塑会创建一个新的数组对象,该对象查看与原始数据相同的数据。我知道就地重塑数组的唯一方法是分配给它的shape
属性:
y.shape = (y.size, 1)
推荐阅读
- javascript - jquery使用Visual Studio代码平滑滚动
- c# - LINQ - 从数据库中为每个对象属性值获取 x 个对象
- cordova - “cordova platform add”无法随机恢复插件
- mysql - 在 CS50 中学习 SQL:RuntimeError: near "IF": 语法错误
- java - Java 在已启动的线程上运行更多代码
- c# - 为什么 HttpClient 在 post 请求中使用了不正确的 requestUri?
- python - 如何导航到 PyCharm 中另一个文件中的基类定义?
- python - 如何在 django 中使整个 urlconf 需要登录
- turbo-c++ - Turbo C MS-DOS BOX 没有响应鼠标点击
- android - 本地化应用程序时如何正确支持英语?