Seaborn - тепловая карта - умирает 31000 квадратных матрицы sns.heatmap - PullRequest
0 голосов
/ 24 ноября 2018

Проблема

Тепловая карта морского происхождения умирает в jupyter notebook и в python форме сценария.

Обзор литературы

сбой в работе seaborn - это наиболее близкая к подобной проблеме проблема, но это не совсем та же проблема.Моя просто морская добыча не будет печатать проблему тепловой карты.

Симптомы

import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set()
import matplotlib.pyplot as plt

M=np.ones((32000,32000))

ax = sns.heatmap(M)
plt.show()

С помощью приведенного выше кода я получаю сообщение kernel stopped running в блокноте jupyter и [1]+ Killed: 9 python bible_ai_construction.py в моем терминале после ожидания 20 минут для тепловой карты.

Общая цель

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

d={'a':['b','c','e'],'b':['a','c'],'c':['a'],'d':['a','e','b'],'e':['a','c']}
#set the new dictionary to one_hot_encoding representation
d={'a':[0,1,1,0,1],'b':[1,0,1,0,0],'c':[1,0,0,0,0],'d':[1,1,0,0,1],'e':[1,0,1,0,0]}
#construct matrix
M=np.matrix(list(map(lambda x:x, d.values())))
#apply M to seaborn heatmap, i.e., M.shape->(32000,32000)

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я думаю, что вы должны предварительно просмотреть большие данные в какой-то субсэмплированной / суммированной форме, а затем иметь детальное представление, связанное с помощью взаимодействия мыши с большим изображением.Вы можете реализовать это, используя https://github.com/AaronWatters/jp_doodle, и на самом деле я реализовал нечто подобное (используя гораздо меньшие данные) в качестве последнего примера в этом блокноте: https://github.com/AaronWatters/jp_doodle/blob/master/notebooks/Simple%20Python%20Examples.ipynb

Вот снимок экрана image color sampler левое изображение - это изображение с полным разрешением, среднее изображение - это деталь размером 3x3 от изображения с полным разрешением, а левый образец - образец цвета в середине детали.Это немного трудно увидеть, но на полном изображении есть серый квадрат, который показывает расположение деталей, которые можно перетаскивать с помощью мыши.

В вашем случае вы бы показывали субдискретизированное изображение слева иПотоковый фрагмент области полного размера из ядра Python.См. https://github.com/AaronWatters/jp_doodle/blob/master/notebooks/misc/image%20streaming%20demo.ipynb для примера потоковой передачи данных из бесчисленных массивов в виджет jp_doodle.

0 голосов
/ 24 ноября 2018

Матрица с размерами 32000x32000 будет иметь более миллиарда элементов.На моем компьютере этот объемный массив увеличивается до 8 ГБ в памяти.

Seaborn / Matplotlib не сможет отображать такие огромные массивы.

Вы должны выполнить некоторые методы агрегирования для вашей матрицы, биннинга и т. Д..

Простое построение такого большого массива не даст никаких преимуществ, никто не сможет вывести какую-либо информацию из такого подробного графика.

...