2013-05-14 68 views
1

我有一個像陣列 -numpy的數組操作

x = array([0, 1, 2, 3,4,5]) 

而且我想這樣的輸出 -

[] 
[1] 
[1 2] 
[1 2 3] 
[1 2 3 4] 
[1 2 3 4 5] 

我想這個代碼 -

y = np.array([np.arange(1,i) for i in x+1]) 

但它使一個列表與我不想要的dtype對象。我希望它不是整數,以便以後可以編制索引。

+3

你不能有不均勻形狀的普通numpy的陣列。也就是說,如果你想要一個2d numpy數組和方便的numpy索引和切片,每一行必須是相同的大小。這就是爲什麼你得到1d數組的一維數組,它就像列表的列表,除了每個項目是一個數組。 – askewchan 2013-05-14 17:43:45

回答

0

而且我想這樣

輸出就輸出這種方式只是一個切片:

import numpy as np 
x = np.array([0, 1, 2, 3, 4, 5]) 

for i in range(1,len(x) + 1): 
    print(x[1:i]) 
+0

這適用於我 – haq 2013-05-14 18:20:19

1

如果我理解正確的問題,是

y = [np.arange(1,i) for i in x+1] 

合適?你可以用y訪問補行與y[r]名單,例如,

>>> y[2] 
array([1, 2]) 

或整批:

>>> y 
[array([], dtype=int64), 
array([1]), 
array([1, 2]), 
array([1, 2, 3]), 
array([1, 2, 3, 4]), 
array([1, 2, 3, 4, 5])] 

另外請注意,您可以控制返回的數組的數據類型arange此處設置爲dtype=int(或類似)。