2016-10-18 2 views
2

Я могу выполнить несколько статистических данных в массиве numpy, но «медиана» возвращает ошибку атрибута. Когда я делаю «dir (np)», я вижу список медианных методов.AttributeError: объект 'numpy.ndarray' не имеет атрибута 'median'

(newpy2) 7831c1c083a2:src scaldara$ python 
Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:43:17) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)] on  darwin 
Type "help", "copyright", "credits" or "license" for more information. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://anaconda.org 

>>> import numpy as np 
>>> print(np.version.version) 
1.11.2 
>>> a = np.array([1,2,3,4,5,6,7,8,9,10]) 
>>> print(a) 
[ 1 2 3 4 5 6 7 8 9 10] 
>>> print(a.min()) 
1 
>>> print(a.max()) 
10 
>>> print(a.mean()) 
5.5 
>>> print(a.std()) 
2.87228132327 
>>> print(a.median()) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'numpy.ndarray' object has no attribute 'median' 
>>> 
+4

ошибка ясно, вам нужно сделать 'np.median (a)', поскольку этот метод не является членом 'numpy.ndarray', а является методом numpy.ndarray – EdChum

ответ

4

Хотя numpy.ndarray имеет mean, max, std и т.д. метод, он не имеет метода median. Список всех методов, доступных для ndarray, см. В разделе numpy documentation for ndarray.

Он доступен как функция, которая принимает массив в качестве аргумента:

>>> import numpy as np 
>>> a = np.array([1,2,3,4,5,6,7,8,9,10]) 
>>> np.median(a) 
5.5 

Как вы увидите в the documentation for ndarray.mean, ndarray.mean и np.mean являются «эквивалентными функциями,» так что это просто вопрос семантики.