Python 为什么列表中的数组没有变大?
我目前正在尝试将Python 为什么列表中的数组没有变大?,python,arrays,numpy,Python,Arrays,Numpy,我目前正在尝试将numpy.array附加到numpy.array的numpy.array,但由于某些原因,它应该增加的维度没有增加 我之前也发表过一篇类似的文章,但是对于numpy.arrays的list,这很有效,但是因为我使用的numpy.ndarrays比示例中的多,所以我将列表转换为numpy.arrays以使其速度更快-容器的形状是(72,0,78,3) 例如: import numpy as np nano_train_input = [] for i in range(974)
numpy.array
附加到numpy.array
的numpy.array
,但由于某些原因,它应该增加的维度没有增加
我之前也发表过一篇类似的文章,但是对于
numpy.arrays
的list
,这很有效,但是因为我使用的numpy.ndarrays
比示例中的多,所以我将列表转换为numpy.arrays
以使其速度更快-容器的形状是(72,0,78,3)
例如:
import numpy as np
nano_train_input = []
for i in range(974):
nano_train_input.append(np.random.random((78,72,3)))
input_train = np.array([np.empty((0,78,3)) for i in range(72)])
print input_train.shape
raw_input("sadasd...")
#print nano_train_input.shape
i = 0
j = 0
for train in nano_train_input:
for row in train.reshape(72,78,3):
#print row.reshape(1,78,3).shape
input_train[i]= np.concatenate((input_train[i],row.reshape(1,78,3)),axis=0)
i = i+1
print input_train[0].shape
i=0
print input_train[0].shape
问题是,在输入串联后,列[0]。形状仍然是(0,78,3),而不是所需的(974,78,3)。。。我该如何解决这个问题
我打算将输入序列转换为列表,但使用
numpy.tolist()
“但是由于我使用的numpy.ndarray比示例中的多,我将列表转换为numpy.arrays以加快速度”-一次追加一个数组是少数几个实际应该坚持使用列表的实例之一,至少在追加完成之前是这样。np.concatenate
实际上对其输入没有任何作用。它构建了一个新的数组,你可以忽略它并丢弃它。看起来您可以只使用一个数组而不是列表,并进行一些重塑
和交换参数
调用,而不是尝试进行任何连接。@user2357112修复了它..=仍然不起作用。我不知道我为什么要坚持下去?。。如果numpy做得更快?我不确定我是否理解您建议的解决方案。。@user2357112。。更好的解决方案也会更好。