我有一個像陣列 -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對象。我希望它不是整數,以便以後可以編制索引。
我有一個像陣列 -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對象。我希望它不是整數,以便以後可以編制索引。
而且我想這樣
輸出就輸出這種方式只是一個切片:
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])
這適用於我 – haq 2013-05-14 18:20:19
如果我理解正確的問題,是
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
(或類似)。
你不能有不均勻形狀的普通numpy的陣列。也就是說,如果你想要一個2d numpy數組和方便的numpy索引和切片,每一行必須是相同的大小。這就是爲什麼你得到1d數組的一維數組,它就像列表的列表,除了每個項目是一個數組。 – askewchan 2013-05-14 17:43:45