列表操作问题
我不知道这是如何工作的,有人可以解释为什么吗?
import numpy as np
l=[]
for i in range(10):
l.append(i+1)
m=l - np.float64(1) #This works fine
n=l-2 # This will give an error
答案 0 :(得分:0)
这与numpy
有关,而不是减去的元素是float
与int
。减去np.int64(1)
也可以。
为何起作用。减法的结果是一个numpy
数组。我认为普通的Python list
首先被转换为numpy
数组,然后减去numpy
int
或float
。
但是,您不能从普通列表中减去int
或float
。
import numpy as np
lst = [1, 2, 3]
np_list = np.array(lst)
# # fails, since you cannot subtract int or float from list
lst - 1
lst - 1.0
# works fine, since element(s) is (are) cast to numpy element
np_list - 1
np_list - 1.0
lst - np.int64(1)
lst - np.float64(1)
np_list - np.int64(1)
np_list - np.float64(1)