6. Обработка внешних данных

Обработка внешних данных

Система Mathematica позволяет импортировать данные в любом формате и манипулировать ими, используя разнообразные мощные встроенные функции.

Чтение данных из файла image.dat. Точка с запятой после команды запрещает системе Mathematica выводить данные на экран.

data=ReadList["image.dat",Number,RecordLists->True];

Визуализация данных в виде  графика плотности.

ListDensityPlot[data,Mesh->False, FrameTicks->None];
wpe56.jpg (7719 bytes)

Вы можете применять к данным любую функцию системы Mathematica.

ListDensityPlot[Exp[Sqrt[data]],Mesh->False, FrameTicks->None,ColorFunction->Hue];
wpe57.jpg (18825 bytes)

Здесь осуществлен последовательный сдвиг данных вправо.

ListDensityPlot[MapIndexed[RotateRight,data], Mesh->False,FrameTicks->None,
ColorFunction->Hue];
wpe58.jpg (20209 bytes)

Представление данных в виде контурного графика.

ListContourPlot[data,ContourShading->False, Contours->6,FrameTicks->None];
wpe59.jpg (23662 bytes)

График плотности данных с сохранивших только несколько Фурье-компонент.

ListDensityPlot[Re[InverseFourier[ MapIndexed[If[Max[#2]<60,#,0]&,Fourier[data],{2}]]], Mesh->False,FrameTicks->None];

wpe5A.jpg (9621 bytes)

Распределение градаций серого в данных.

ListPlot[Sort[Flatten[data]]];
wpe5B.jpg (4951 bytes)

Представление данных в виде трехмерного графика.

ListPlot3D[data,ColorFunction->Hue,Mesh->False, ViewPoint->{0.2,-2,5}];

wpe5C.jpg (19014 bytes)

Mathematica может оперировать не только с числами, но и с данными любого типа.

Считывание всех элементов словаря.

data=ReadList["dictionary.dat",String];

Выбор первых 40 слов в словаре.

Take[data,40]
 {"a","AAA","AAAS","Aarhus","Aaron","ABA","Ababa", "aback","abacus","abalone","abandon","abase","abash", "abate","abbas","abbe","abbey","abbot","Abbott", "abbreviate","abc","abdicate","abdomen","abdominal", "abduct","Abe","abed","Abel","Abelian","Abelson", "Aberdeen","Abernathy","aberrant","aberrate", "abet","abetted","abetting","abeyance","abeyant", "abhorred"}

Выбор слов, которые являются палиндромами и содержат более двух букв.

Select[data,(#==StringReverse[#] && StringLength[#]>2)&]
 {"AAA","ABA","ala","AMA","ana","bib","bob","bub","CDC", "civic","dad","deed","did","DOD","dud","eke","ere", "eve","ewe","eye","gag","gig","gog","huh","iii", "level","madam","minim","mum","non","noon","nun","pap", "PDP","peep","pep","pip","poop","pop","pup","radar", "refer","rever","rotor","sis","s's","tat","teet", "tenet","tit","TNT","toot","tot","wow"}

Эта команда находит длины всех слов в словаре.

wordLengths=Map[StringLength,data];

Подсчет общего числа слов равной длины.

Table[Count[wordLengths,i],{i,Max[wordLengths]}]
{26,131,775,2152,3093,3793,3929,3484,2969,1883,1052, 542,260,102,39,15,6,4,0,1,2,1}

График распределения количества слов в словаре по длинам.

ListPlot[%,PlotStyle->PointSize[0.02]];
wpe5D.jpg (4246 bytes)