Arrays Python3,将数组列表转换为纯浮点数组
我有一个滚动窗口功能。它将numpy数组转换为数组列表。但是,我想将此函数的结果转换为纯数组Arrays Python3,将数组列表转换为纯浮点数组,arrays,list,python-3.x,numpy,Arrays,List,Python 3.x,Numpy,我有一个滚动窗口功能。它将numpy数组转换为数组列表。但是,我想将此函数的结果转换为纯数组 import numpy as np def get_rolling_window(arr, window): arr_rolled = [arr[i:i+window] for i in np.arange(arr.shape[0])] return arr_rolled x = np.arange(10).reshape(5,2) x_rolled = get_rolling_w
import numpy as np
def get_rolling_window(arr, window):
arr_rolled = [arr[i:i+window] for i in np.arange(arr.shape[0])]
return arr_rolled
x = np.arange(10).reshape(5,2)
x_rolled = get_rolling_window(x, 2)
现在x_是一个数组列表。如果我使用
x_arr = np.array(x_rolled)
它将不起作用,因为x_arr的数据类型是object,而不是float或int
print(x_arr.shape)
你将得到(5,)。对于纯浮点数组,其形状应为(5,2,2)
你知道怎么做吗
谢谢您的
xu
是一个不同形状数组的列表。因此,np.array
无法将其转换为整数的多维数组
In [235]: x_rolled
Out[235]:
[array([[0, 1],
[2, 3]]), array([[2, 3],
[4, 5]]), array([[4, 5],
[6, 7]]), array([[6, 7],
[8, 9]]), array([[8, 9]])]
In [236]: [x.shape for x in x_rolled]
Out[236]: [(2, 2), (2, 2), (2, 2), (2, 2), (1, 2)]
如果省略最后一个元素,则得到一个3d数组:
In [237]: np.array(x_rolled[:-1])
Out[237]:
array([[[0, 1],
[2, 3]],
[[2, 3],
[4, 5]],
[[4, 5],
[6, 7]],
[[6, 7],
[8, 9]]])
In [238]: _.shape
Out[238]: (4, 2, 2)
很容易被铸造成浮子
np.array(x_rolled[:-1]).astype(float)
我怀疑您的滚动功能没有按您所希望的那样工作。您的
x\u rolled
是一个不同形状数组的列表。因此,np.array
无法将其转换为整数的多维数组
In [235]: x_rolled
Out[235]:
[array([[0, 1],
[2, 3]]), array([[2, 3],
[4, 5]]), array([[4, 5],
[6, 7]]), array([[6, 7],
[8, 9]]), array([[8, 9]])]
In [236]: [x.shape for x in x_rolled]
Out[236]: [(2, 2), (2, 2), (2, 2), (2, 2), (1, 2)]
如果省略最后一个元素,则得到一个3d数组:
In [237]: np.array(x_rolled[:-1])
Out[237]:
array([[[0, 1],
[2, 3]],
[[2, 3],
[4, 5]],
[[4, 5],
[6, 7]],
[[6, 7],
[8, 9]]])
In [238]: _.shape
Out[238]: (4, 2, 2)
很容易被铸造成浮子
np.array(x_rolled[:-1]).astype(float)
我怀疑你的滚动函数没有按你所希望的那样工作。np.concatenate(x\u rolled)给了你什么?np.concatenate(x\u rolled)给了你什么?