我的密码是
import numpy as np
housing_data = np.loadtxt('Housing.csv', delimiter=',')
x1 = housing_data[:,0]
x2 = housing_data[:,1]
y = housing_data[:,2]
avgX1 = np.mean(x1)
stdX1 = np.std(x1)
normX1 = (x1 - avgX1) / stdX1
avgX2 = np.mean(x2)
stdX2 = np.std(x2)
normX2 = (x2 - avgX2) / stdX2
ones = np.ones((normX2.shape[0], 1))
normalizedX = np.array((ones[0], normX1, normX2))
我试图用第一列中的数组创建一个新的规范化数组,然后是normX1
和normX2
。由于某种原因,我的代码不起作用。知道我做错了什么吗
实际的问题是您制作了
ones
2D,其中normX1
和normX2
是1D。然后,当调用np.array((ones[0], normX1, normX2))
时,会得到ones
的第一行,这是另一个长度为1的数组。np.array
的三个参数之间的长度不匹配会导致它返回一个对象列表(带有dtype=object
的numpy数组)我只需要将
ones
设置得足够大,以便首先适合所有数据,并避免创建一个额外的数组。然后将normX1
和normX2
的值赋给该数组的列:相关问题 更多 >
编程相关推荐