Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的数组减法_Python_Numpy - Fatal编程技术网

Python中的数组减法

Python中的数组减法,python,numpy,Python,Numpy,这是我实现线性回归的代码: 但我想将最后4行更改为数组减法(如注释行所示),我面临以下错误: File "D:/Machine Learning/hw1/hw1-b.py", line 19, in <module> gbase = np.matmul(data, cobase) # h(x)-y matrix TypeError: Object arrays are not currently supported 致以最诚挚的问候此错误表示至少有一个数组的类型为“obj

这是我实现线性回归的代码: 但我想将最后4行更改为数组减法(如注释行所示),我面临以下错误:

File "D:/Machine Learning/hw1/hw1-b.py", line 19, in <module>
    gbase = np.matmul(data, cobase)  # h(x)-y matrix
TypeError: Object arrays are not currently supported

致以最诚挚的问候

此错误表示至少有一个数组的类型为“object” 如果“mydata”包含任何字符串,则可能会导致这种情况。 应该从需要对其使用matmul操作的数组中删除所有字符串。之后,您需要通过调用.astype(float)将它们转换为float类型。此后,matmul应按预期工作


希望这会对您有所帮助。

您可以自己做一个列表,而不是使用numpy

a = 10
d = [10, 20, 30, 40]
t = [1, 2, 3, 4]

t = [v - a * d[i] for i, v in enumerate(t)]

print(t) # [-99, -198, -297, -396]
或者仅仅为了好玩而使用lambda:

my_substract = lambda v, a, i,: v - a * i

t = [my_substract(v, a, d[i]) for i, v in enumerate(t)]

print(t) # [-99, -198, -297, -396]

请在代码块中正确设置错误格式。您的意思是:?一切都没有numpy!感谢您的回复,但是当我在最后4行中逐元素进行操作时,它会起作用,当我想将其更改为数组减法时,这个错误就出现了,这就是为什么我要写我的答案。该错误清楚地告诉您,其中一个数组(很可能是数据)的类型为object,这就是它无法工作的原因。我真的认为你应该试试我建议的答案;)我认为它可能会起作用,这取决于当前“对象”的类型。正如他在我的回答中所说的那样,输出本身就是一个数组,因此我猜测它是一个数组,执行列操作也可以工作,因为数组在切片时从类型对象转换为类型浮点。数据(类型对象),数据[:,0](转换为类型浮点)-->matmul工作感谢它工作,但我的输出是:[array([0.00814227])、array([0.98023189])、array([0.18691605])、array([0.03326854]),它包含数组字。啊,太好了!现在您正在获得输出,其中一个值(
v
d[i]
)可能是一个
数组。您应该检查这些值,例如通过
在控制台中打印它们,或使用pdb的
跟踪或其他方法
my_substract = lambda v, a, i,: v - a * i

t = [my_substract(v, a, d[i]) for i, v in enumerate(t)]

print(t) # [-99, -198, -297, -396]