2016-11-13 56 views
0

我目前正在努力将一些数据解析为训练框架。如何轻松将numpy.ndarray转换为numpy.array列表?

问题是框架无法处理ndarray。我需要转换成数组列表。输入和输出数据当前存储为numpy.ndarray的两个单独列表。

  1. 必须将输入数据转换为numpy数组列表,其中每个数组包含ndarray列。

  2. 输出数据必须被转换成numpy的阵列的列表,其中每个阵列包含ndarray的行?..

是否有可能将其转换为这个?

当我打印train_output_data [0] I得到这样的:

https://ufile.io/fa816

+2

正如您以前的['Q&A'](http://stackoverflow.com/questions/40566500/access-columns-and-rows-of-numpy-ndarray)中所列,使用'list(a)'和'名单(AT)'? – Divakar

+0

我不确定我了解转置如何帮助您? –

+2

转置带来第二个轴,沿着它我们有列作为第一个轴,因此当*放*到'列表()'会创建列的列。为什么不尝试一下?如果它没有解决它,怎么样放置一个样本数组和期望的数组列表? – Divakar

回答

1

假设ipop是输入列表和分别输出列表,

newInput = [ip[:,i] for i in range(ip.shape[0])] 
newOutput = [x for x in op] 

如果train_output_datatrain_input_data是2D numpy.ndarray的列表,那么替代可以是

newInput = [] 
for ip in train_input_data: 
    newInput.append([ip[:,i] for i in range(ip.shape[0])]) 

newOutput = [] 
for op in train_output_data: 
    newOutput.append([x for x in op]) 
+0

我想你必须添加一个外部的for-loop来使它运行多个ndarrays列表。 –

+0

@CarltonBanks:你声明*输入和输出数据当前是作为numpy.ndarray的两个单独列表存储的*如果只有两个列表,每个列表对应一个输入和输出,那么上面两行就足够了。 –

+0

哦...是的,但不能调用ip.shape [0]。作为ndarrays被追加到列表中的 。你可以调用ip.shape [0] .shape [0] .. 但是这只会对那一个实例有效? –

相关问题