Numpy 从数组列表的第三个元素切片每个数组的第三个元素(python)
我有一个字典,它的键“Groups”的第一个元素包含数组列表Numpy 从数组列表的第三个元素切片每个数组的第三个元素(python),numpy,slice,Numpy,Slice,我有一个字典,它的键“Groups”的第一个元素包含数组列表 stump['Groups'][0] [array(['a', 65000, 0], dtype=object), array(['a', 95000, 1], dtype=object), array(['b', 78000, 1], dtype=object), array(['b', 19000, 1], dtype=object)] 我想对每行的第三列进行切片,并对它们执行一些操作。 所以第三列的值应该是[0,1,1
stump['Groups'][0]
[array(['a', 65000, 0], dtype=object),
array(['a', 95000, 1], dtype=object),
array(['b', 78000, 1], dtype=object),
array(['b', 19000, 1], dtype=object)]
我想对每行的第三列进行切片,并对它们执行一些操作。
所以第三列的值应该是[0,1,1,1]
stump['Groups'][0][:]
#results in the whole list
[array(['a', 65000, 0], dtype=object),
array(['a', 95000, 1], dtype=object),
array(['b', 78000, 1], dtype=object),
array(['b', 19000, 1], dtype=object)]
但是,在[:]
前面添加另一个索引器/切片器,只会切片该列表的一部分
不管怎么说,要做到这一点没有循环
多谢各位 列表理解应完成以下工作:
[row[2] for row in stump['Groups'][0]]
要将列表作为数组使用,请执行以下操作:
np.array([...])
此列表的元素
array(['a', 65000, 0], dtype=object)
是对象数据类型数组,与相同内容的列表大致相同。他们的价值观参差不齐
如果将整个列表包装在np.array
(或np.stack
)中,则会得到一个2d对象数据类型数组
In [58]: arr=np.array(alist)
In [59]: arr.shape
Out[59]: (4, 3)
In [60]: arr
Out[60]:
array([['a', 65000, 0],
['a', 95000, 1],
['b', 78000, 1],
['b', 19000, 1]], dtype=object)
可以作为任何其他二维数组索引的:
In [61]: arr[:,2]
Out[61]: array([0, 1, 1, 1], dtype=object)
astype(int)
可以将该对象数组转换为数字数组。由于字符串元素的原因,无法转换完整的2d格式。列表理解应完成以下工作:
[row[2] for row in stump['Groups'][0]]
要将列表作为数组使用,请执行以下操作:
np.array([...])
此列表的元素
array(['a', 65000, 0], dtype=object)
是对象数据类型数组,与相同内容的列表大致相同。他们的价值观参差不齐
如果将整个列表包装在np.array
(或np.stack
)中,则会得到一个2d对象数据类型数组
In [58]: arr=np.array(alist)
In [59]: arr.shape
Out[59]: (4, 3)
In [60]: arr
Out[60]:
array([['a', 65000, 0],
['a', 95000, 1],
['b', 78000, 1],
['b', 19000, 1]], dtype=object)
可以作为任何其他二维数组索引的:
In [61]: arr[:,2]
Out[61]: array([0, 1, 1, 1], dtype=object)
astype(int)
可以将该对象数组转换为数字数组。由于字符串元素,无法转换完整的2d对象。列表理解=>返回列表对象
column_list = [row[2] for row in stump['Groups'][0]]
map函数=>返回映射对象
column_map = map(lambda row: row[2], stump['Groups'][0])
itertools.imap函数=>返回迭代器
column_iterator = itertools.imap(lambda row: row[2], stump['Groups'][0])
numpy数组切片->返回numpy.array。
要求stump['Groups'][0]为numpy.array类型
columns_array = stump['Groups'][0][:,2]
列表理解=>返回列表对象
column_list = [row[2] for row in stump['Groups'][0]]
map函数=>返回映射对象
column_map = map(lambda row: row[2], stump['Groups'][0])
itertools.imap函数=>返回迭代器
column_iterator = itertools.imap(lambda row: row[2], stump['Groups'][0])
numpy数组切片->返回numpy.array。
要求stump['Groups'][0]为numpy.array类型
columns_array = stump['Groups'][0][:,2]
是的,我忘了我可以将列表转换成数组,这将允许我像任何2d数组一样进行索引。谢谢=)是的,我忘了我可以将列表转换成数组,这将允许我像任何2d数组一样进行索引。谢谢=)