тайная ось 0 и 1 направление - PullRequest
0 голосов
/ 25 июня 2019

Следуя «Python для анализа данных» в главе numpy, можно встретить такой пример.

#+BEGIN_SRC ipython :session my :export both :results output
arr = np.random.randn(5, 4)
print(arr)
#+END_SRC
#+RESULTS:
: [[-1.20142965 -0.65152972  2.04732169 -2.27351496]
:  [ 1.0054648  -1.75728785  0.00923428 -0.65533187]
:  [-2.1108598  -0.92347845  0.46443361 -0.48219059]
:  [ 0.77617699  0.40242098  1.09411003 -0.6431827 ]
:  [-0.59485821  1.22890193 -0.7498006   0.93518233]]

В нем говорится, что

Функции типа среднего и суммы принимают необязательную ось.аргумент, который вычисляет статистику по заданной оси, в результате чего получается массив с одним меньшим измерением:

#+BEGIN_SRC ipython :session my :export both :results output
print(arr.mean(axis=1))
print(arr.sum(axis=0))
#+END_SRC
#+RESULTS:
: [-0.51978816 -0.34948016 -0.76302381  0.40738132  0.20485636]
: [-2.12550586 -1.70097313  2.86529902 -3.11903779]

Тогда в книге объясняется, что

Здесь, arr.mean(1) означает «вычислить среднее по столбцам», где arr.sum (0) означает «вычислить сумму по строкам».

Я предполагаю, что мистер МакКинни отлично справился с объяснением в противоположномway.

arr.sum (0) означает вычисление строки, которая по столбцам
arr.mean (1) означает, что это означает, что вниз по строкам в столбце или в вертикальном направлении.

Есть проблемы с моим пониманием?

1 Ответ

1 голос
/ 25 июня 2019

Делать вдоль некоторой оси означает уменьшить размерность вдоль нее. итак:

import numpy as np



arr = np.array([[1,2,3] , 
                [4,5,6]])


print(arr.sum(axis = 0))

print(arr.sum(axis = 1))

Первый уменьшает по оси = 0 то, что является внешним или «вертикально», как вы сказали, и возвращает [1 + 4, 2 + 5, 3 + 6]

Второй повторяется вдоль каждого ряда [1 + 2 + 3, 4 + 5 + 6]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...