如标题中所述,我有一个看起来像(numpy_array,id)的元组列表,其中numpy数组是m x m。我需要访问numpy数组的每个元素(即所有m ^ 2),但是在没有解压缩元组的情况下我很难做到这一点。
我宁愿不解包元组,因为它有多少数据/由于数据量需要多长时间。
如果我解压缩元组代码如下所示,有没有办法对其进行索引以便我不需要解压缩?
select convert(varchar(5), '2018-05-01 00:00:00.000', 100)
答案 0 :(得分:1)
如果您只想直接访问n维numpy数组的特定位置中的元素,则可以使用 ndimensional索引。
例如:
我想访问3x3数组 c 的第一行第三列中的元素,然后我将执行 c [0,2] 。
c = np.random.rand( 3,3 )
print(c)
print( 'Element:', c[0,2])
查看官方文档Numpy Indexing
_Update__
如果是元组列表,则应为每个数据结构编制索引
import numpy as np
a =[
( np.random.rand( 2,2 ), 0 ), #first tuple
( np.random.rand( 2,2 ), 2 ), #second tuple
( np.random.rand( 2,2 ), 3 ), # ...
( np.random.rand( 2,2 ), 1 )
]
print( np.shape(a) ) # accessing list a
# (4,2)
print( np.shape(a[0]) ) # accessing the first tuple in a
# (2)
print( np.shape(a[0][0]) ) # accessing the 2x2 array inside the first tuple
# (2,2)
print( np.shape(a[0][0][0,1]) ) # accessing the [0,1] element inside the array
# ()
#another example
c = ( np.array([ [1,2,3],[4,5,6],[7,8,9] ]), 8 )
print( c[0][0,2] ) # output: 3