我有一条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代码试图修改的内容的逻辑是否正确?如果是这样,我在这里做什么错了?
答案 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])