【问题标题】:Understand the syntaxe X[Y == c] in Numpy [duplicate]理解 Numpy 中的语法 X[Y == c] [重复]
【发布时间】:2018-04-01 03:00:57
【问题描述】:

请我不明白这个语法是如何工作的:current_x = X[Y == c]。

我已经在 Ipython 中打印了一些带有代码的示例(我在这里使用 pandas 作为 pd):

In [120]: pd.DataFrame(X)
Out[120]: 
        0         1         2    3    4    5    6    7    8    9   ...   475  \
0  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
1  0.070588  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
2  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
3  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
4  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
5  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
6  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
7  0.596078  0.596078  0.062745  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
8  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   
9  0.000000  0.000000  0.000000  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0   

   476  477  478  479  480  481  482  483  484  
0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
1  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
2  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
3  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
4  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
5  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
6  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
7  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
8  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  
9  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  

[10 rows x 485 columns]

In [121]: pd.DataFrame(Y)
Out[121]: 
   0
0  1
1  7
2  9
3  4
4  5
5  1
6  1
7  6
8  1
9  1

In [122]: pd.DataFrame(X[Y == 5])
Out[122]: 
   0    1    2    3    4    5    6    7    8    9   ...   475  476  477  478  \
0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0  0.0 ...   0.0  0.0  0.0  0.0   

   479  480  481  482  483  484  
0  0.0  0.0  0.0  0.0  0.0  0.0  

[1 rows x 485 columns]

我不知道 X[Y == 5] 是如何得出这个结果的。 请帮助-lp

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:
    # this returns a list of True or False depending if Y[i] == 5 for all i in Y
    Y==5 => [False, False, False, False, True, False, False, False, False, False]
    
    # this is known as boolean indexing ...
    X[ [False, False, False, False, True, False, False, False, False, False] ] => your output
    

    【讨论】:

    • 仍然不明白我们如何得到 X[Y == 5] 的结果,知道 np.mean(X[Y == 5]) = 0,1432
    猜你喜欢
    • 1970-01-01
    • 2021-02-17
    • 2020-03-06
    • 2012-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多