Numpy - добавление в пустой массив значения столбца существующего массива - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь использовать модуль numpy (который я импортировал как np), чтобы найти средние значения векторов столбцов, а затем вычесть их из столбцов. Однако, когда я пытаюсь получить средство и добавить его в пустой массив, он начинается с 0 и имеет неправильные значения. Есть идеи, что я могу делать не так?

rating2 = np.array(student_data.values[:,1:])
print(rating2)
means = np.empty([1,25])
for index in range(0,24):
    b = np.mean(rating2[:,index], axis = 0)
    print("b is", b)
    np.append(means,b)
A = np.array(means)
print(A)

Я проверил каждое вычисляемое среднее значение, и оно не начинается с 0. Я проверил индексирование, и оно кажется правильным.

Мой вывод:

[[3 2 3 3 3 3 3 3 4 3 4 4 3 4 3 2 2 3 4 2 2 3 3 4 4]
 [2 3 4 3 2 3 4 3 3 4 5 3 4 3 3 1 1 3 3 2 1 3 3 4 3]
 [2 5 4 2 3 2 4 4 1 4 3 1 4 2 2 3 3 2 2 4 3 2 1 3 2]
 [3 4 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 4 4 3 3 3 3]
 [4 1 1 5 4 4 2 2 4 1 1 4 1 4 4 4 4 4 4 2 4 4 5 2 4]
 [4 2 2 4 3 3 2 3 4 2 2 4 2 4 4 3 3 4 4 2 3 4 4 3 4]
 [2 5 5 1 2 2 4 4 2 5 5 2 5 2 2 2 2 2 2 4 2 2 1 4 2]
 [3 4 3 3 3 3 3 3 2 3 3 2 3 2 3 4 4 3 2 4 4 3 2 2 2]
 [4 1 2 4 3 4 2 2 4 2 3 5 3 4 4 3 3 4 4 2 2 4 4 4 4]
 [3 4 3 3 3 3 3 3 2 3 2 2 3 2 3 4 4 3 2 4 4 3 3 2 2]]
b is 3.0
b is 3.1
b is 3.0
b is 3.1
b is 2.9
b is 3.0
b is 3.0
b is 3.0
b is 2.9
b is 3.0
b is 3.1
b is 2.9
b is 3.1
b is 3.0
b is 3.1
b is 2.9
b is 2.9
b is 3.1
b is 3.0
b is 3.0
b is 2.9
b is 3.1
b is 2.9
b is 3.1
[[0.  3.  3.1 3.  3.1 2.9 3.  3.  3.  2.9 3.  3.1 2.9 3.1 3.  3.1 2.9 2.9
  3.1 3.  3.  2.9 3.1 2.9 3.1]]

1 Ответ

1 голос
/ 15 апреля 2020

Это должно работать

import numpy as np

# your numpy array
matrix = np.random.random((10, 10))

# this is the column wise mean
mean = np.mean(matrix, axis=0)

# this line is broadcasting the mean to the matrix
matrix_without_mean = matrix - mean
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...