如何使用numpy将一列1添加到规范化数组中?

2024-06-28 19:52:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我的密码是

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))

我试图用第一列中的数组创建一个新的规范化数组,然后是normX1normX2。由于某种原因,我的代码不起作用。知道我做错了什么吗


Tags: datanpones数组meanstdx1x2
1条回答
网友
1楼 · 发布于 2024-06-28 19:52:27

实际的问题是您制作了ones2D,其中normX1normX2是1D。然后,当调用np.array((ones[0], normX1, normX2))时,会得到ones的第一行,这是另一个长度为1的数组。np.array的三个参数之间的长度不匹配会导致它返回一个对象列表(带有dtype=object的numpy数组)

我只需要将ones设置得足够大,以便首先适合所有数据,并避免创建一个额外的数组。然后将normX1normX2的值赋给该数组的列:

normalizedX = np.ones((normX2.shape[0], 3))
normalizedX[:,1] = normX1
normalizedX[:,2] = normX2
print(normalizedX)

相关问题 更多 >