Создание блокпостов с правильной осью х в python - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать коробку из автоматических данных mpg на количество цилиндров. Это код, который у меня есть

cyls = list(set(np.array(auto.cylinders)))
data = []
for val in cyls:
    d = np.array(auto.loc[auto['cylinders'] == val].mpg)
    data.append(d)
fig, ax = plt.subplots()
ax.boxplot(data, positions = cyls);

Это было сделано в блокноте Jupyter. Он работает нормально, но похоже на обходное решение, тем более что в R. это, по-видимому, намного проще. Есть ли более краткий способ сделать это?

1 Ответ

0 голосов
/ 09 января 2020

Похоже, самая окольная часть вашего решения - for-l oop. Я понимаю боль, поскольку у MATLAB также есть лаконичные способы доступа к элементам массива.

Похоже, вы можете сделать свое решение немного более лаконичным, заменив свой for-l oop чем-то вроде этого:

data = [ auto[i].mpg for i in indices]

где indices - массив требуемых индексов для каждого автомобиля.

(см. Доступ к нескольким элементам списка, зная их индекс )

Но в зависимости от того, как вы настроили объект auto, возможно, вы могли бы просто использовать

data = list(set(np.array(auto.mpg)))

, чтобы получить соответствующие значения mpg.

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