Требуется уточнение в Коде распределения Парето в Python - PullRequest
0 голосов
/ 08 марта 2020

Можете ли вы объяснить 'output.T' в коде? Я искал в Google, но не смог найти ответы, которые помогут лучше узнать код. Код предназначен для построения распределения Парето.

import numpy as np
from matplotlib import pyplot as plt
from scipy.stats import pareto

xm = 1 # scale 
alphas = [1, 2, 3] # shape parameters
x = np.linspace(0, 5, 1000)

output = np.array([pareto.pdf(x, scale = xm, b = a) for a in alphas])
plt.plot(x, output.T)
plt.show()

В этом коде, что представляет собой output.T? В частности, что здесь T?

1 Ответ

4 голосов
/ 08 марта 2020

В вашем случае, похоже, список списков будет преобразован в массив. .T принимает транспонирование, аналогично операции на матрицах из математики. Вы можете увидеть разницу следующим образом: output.T.shape против output.shape

Вот небольшой пример:

>>> np.array([1, 2, 3], ndmin=2)
array([[1, 2, 3]])
>>> a = np.array([1, 2, 3], ndmin=2)
>>> a
array([[1, 2, 3]])
>>> a.shape
(1, 3)
>>> a.T
array([[1],
       [2],
       [3]])
>>> a.T.shape
(3, 1) 

Обратите внимание, что это не имеет никакого отношения к распределению Парето per se за исключением, возможно, того факта, что Парето поддерживал векторизацию, но операцию .T в операции над объектом np.array, так что это то, что вы хотели бы найти в Docs.

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