2017-05-04 71 views
0

我想创建一个numpy array以便用numpy arrays填充它。例如:创建具有不同形状的numpy阵列

a = [] (simple array or numpy array) 
b = np.array([[5,3],[7,9],[3,8],[2,1]]) 
a = np.concatenate([a,b]) 
c = np.array([[1,2],[2,9],[3,0]]) 
a = np.concatenate([a,c]) 

我想这样做,因为我有我从中提取了一些功能,所以我不能从2个档,但同时反复读取wav文件。 如何创建一个空的ndarray,其第二维度固定a.shape = (x,2)或者我如何连接数组,即使没有创建“存储”数组?

+0

'a = np.empty((0,2))'。 – Psidom

+1

试图逐步调用'concatenate'确实很慢。最好是建立一个数组列表来连接,然后将它们一次全部“连接”起来。 – user2357112

+0

@Psidom谢谢。 – stefos

回答

1

其实有2个选项。 第一个是: a = np.empty((0,2)),它创建一个空的np数组,并且第一维变化。 第二个是创建一个空数组 a = [],将np数组附加到数组中,然后使用np.vstack将它们连接在一起。后者是最有效的选择。

0

你必须有括号连击功能:

b = np.array([[5,3],[7,9],[3,8],[2,1]]) 
c = np.array([[1,2],[2,9],[3,0]]) 
a = np.concatenate([b,c]) 

输出:

[[5 3] 
[7 9] 
[3 8] 
[2 1] 
[1 2] 
[2 9] 
[3 0]]