Как изобразить сюжетную коробку или скрипку с Seaborn, используя в качестве входных данных многомерный массив numpy? - PullRequest
1 голос
/ 29 января 2020

У меня есть двумерный массив numpy с размерами (500, 10), который я хотел бы построить в виде скрипки Seaborn или блокпоста, в котором есть поле для каждого из 10 столбцов. Какой самый чистый способ передать это в Seaborn, не совершая утомительных манипуляций, чтобы сначала поместить его в Pandas Dataframe? Я уверен, что могу сделать преобразование, но я боюсь, что я, вероятно, не понимаю лучший и самый краткий способ сделать это.

Например, я мог бы сделать что-то вроде

all_arrays = []
cols = the_array.shape[1]
for col in range(0, cols):
     all_arrays.append(the_array[:, col])
sns.boxplot(data=all_arrays)

Но есть ли лучший способ разбить исходный массив на список массивов, или, возможно, есть лучший способ передать это в море? Спасибо.

1 Ответ

2 голосов
/ 29 января 2020

Ваше решение верное, boxplot() ожидает список векторов, поэтому вам нужно каким-то образом преобразовать вашу матрицу в него.

Однако вы можете упростить способ написания кода: sns.boxplot(data=[d for d in the_array.T])

полный код:

# create a dummy matrix 500x10
the_array = np.zeros(shape=(500,10))
for i in range(10):
    the_array[:,i] = np.random.normal(loc=i, size=(500,))

sns.boxplot(data=[d for d in the_array.T])

enter image description here

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