Как создать список:? - PullRequest
       2

Как создать список:?

0 голосов
/ 01 октября 2019

Так что я пытаюсь создать список: потому что мне нужно, чтобы нарезать тензор. например,

a = np.random.random((2,3,4,5))
a[:,1,:,:]

, где местоположение 1 может быть изменено, поэтому оно может быть a[:,:,1,:] или a[:,:,:,1] и т. д.

1 Ответ

0 голосов
/ 01 октября 2019

Подход, который я видел в numpy функциях, заключается в создании списка slice(None). Замените один индексом. И преобразовать в кортеж для индексации.

In [176]: a = np.arange(24).reshape(2,3,4)                                      
In [177]: a                                                                     
Out[177]: 
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],

       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

In [178]: idx = [slice(None)]*3                                                 
In [179]: idx[1] = 1                                                            
In [180]: a[tuple(idx)]                                                         
Out[180]: 
array([[ 4,  5,  6,  7],
       [16, 17, 18, 19]])

In [181]: np.take(a,1,axis=1)                                                   
Out[181]: 
array([[ 4,  5,  6,  7],
       [16, 17, 18, 19]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...