这个python代码试图对这个numpy数组做什么?

时间:2019-11-17 04:25:10

标签: python numpy

我有一条python代码行,不确定该执行什么操作。我不知道语法的名称在做什么,所以我不确定如何用谷歌搜索它。 (我尝试过:选择numpy数组)。

结果的类型为numpy.ndarray

self.Xconstant是False布尔值的列表

    result[:, self.Xconstant] = 0.0

这是self.Xconstant是什么

[False, False, False]

我假设它将为碰巧为True的list元素分配0.0?所以如果我有它:

# lets say result is [1, 2, 3]
self.Xconstant = [False, False, True]
result[:, self.Xconstant] = 0.0 # print result would give [1, 2, 0.0]

奇怪的是,我收到一条错误消息:“数组的索引过多”。

我对这行python代码试图修改的内容的逻辑是否正确?如果是这样,我在这里做什么错了?

2 个答案:

答案 0 :(得分:2)

此:

result[:, self.Xconstant]

应为:

result[self.Xconstant]

毕竟,result是一维的,而一维的数组不需要两个索引器。

答案 1 :(得分:1)

对于2 res

In [50]: res = np.array([[1,2,3]])                                              
In [51]: res[:,[False,False,True]]                                              
Out[51]: array([[3]])
In [52]: res[:,[False,False,True]]=0                                            
In [53]: res                                                                    
Out[53]: array([[1, 2, 0]])

持续1天:

In [54]: res = np.array([1,2,3])                                                
In [55]: res[[False,False,True]]=0                                              
In [56]: res                                                                    
Out[56]: array([1, 2, 0])