我有一个像阵列 -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