如何将一个数组解释为另一个数组的尖括号?

2024-03-28 12:59:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了这段代码,我试图理解将掩码应用于数组的输出的含义

matrix = np.random.rand(3,3)
matrix

output:

array([[0.7441097 , 0.02908848, 0.60378581],
       [0.53335156, 0.21701412, 0.51545259],
       [0.91777356, 0.49123304, 0.15410852]])
mask

output:

matrix([[0, 0, 2],
        [1, 1, 0],
        [2, 2, 2]])
matrix[mask]

output:

array([[[0.7441097 , 0.02908848, 0.60378581],
        [0.7441097 , 0.02908848, 0.60378581],
        [0.91777356, 0.49123304, 0.15410852]],

       [[0.53335156, 0.21701412, 0.51545259],
        [0.53335156, 0.21701412, 0.51545259],
        [0.7441097 , 0.02908848, 0.60378581]],

       [[0.91777356, 0.49123304, 0.15410852],
        [0.91777356, 0.49123304, 0.15410852],
        [0.91777356, 0.49123304, 0.15410852]]])

如何解释这一结果


1条回答
网友
1楼 · 发布于 2024-03-28 12:59:06

这就是这么做的:

In [1108]: matrix[0]                                                                                                                                                                                        
Out[1108]: array([0.02502891, 0.74397363, 0.74176154])

In [1109]: matrix[1]                                                                                                                                                                                        
Out[1109]: array([0.76480152, 0.84331737, 0.29647379])

In [1110]: matrix[2]                                                                                                                                                                                        
Out[1110]: array([0.68258943, 0.43118925, 0.82981894])

当您这样做时:

matrix[mask]

其中,掩码为:

matrix([[0, 0, 2],
        [1, 1, 0],
        [2, 2, 2]])

它返回一个数组,其第一个元素为:

[matrix[0], matrix[0], matrix[2]],

第二:

[matrix[1], matrix[1], matrix[0]]

等等

相关问题 更多 >