Как я могу добавить столбец единиц в нормализованный массив с NumPy? - PullRequest
0 голосов
/ 07 февраля 2019

Мой код:

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.По какой-то причине мой код не работает.Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 07 февраля 2019

Фактическая проблема в том, что вы сделали ones 2D, где normX1 и normX2 - 1D.затем, когда вы вызываете np.array((ones[0], normX1, normX2)), вы получаете первую строку ones, которая является другим массивом длины 1. Несоответствие длины между тремя аргументами для np.array заставляет его вместо этого возвращать список объектов (массив с нулевыми значениями)с dtype=object).

Я бы просто сделал ones достаточно большим, чтобы в первую очередь вместить все ваши данные и избежать создания одного дополнительного массива.Затем просто присвойте значения normX1 и normX2 столбцам этого массива:

normalizedX = np.ones((normX2.shape[0], 3))
normalizedX[:,1] = normX1
normalizedX[:,2] = normX2
print(normalizedX)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...