1 Введение в базовые знания серии интеллектуального анализа больших данных Python

Python

preface

Python был очень популярен в индустрии больших данных в течение последних двух лет, как pythonic, поэтому он должен участвовать в анализе больших данных, о которых мы поговорим ниже.

Обзор технологии анализа данных и майнинга Python

Так называемый анализ данных заключается в анализе известных данных, а затем извлечении некоторой ценной информации, такой как среднее статистическое значение, стандартное отклонение и другая информация, объем данных для анализа данных может быть не слишком большим, а интеллектуальный анализ данных относится к Большой объем данных анализируется и упрямится, чтобы получить неизвестную и ценную информацию, такую ​​​​как получение информации о потенциальном спросе пользователей от пользователей и поведение пользователей на веб-сайте, чтобы улучшить веб-сайт. Анализ данных и интеллектуальный анализ данных неразделимы, а интеллектуальный анализ данных — это усовершенствование анализа данных. Технология интеллектуального анализа данных может помочь нам лучше обнаружить законы между вещами. Таким образом, мы можем использовать технологию интеллектуального анализа данных, чтобы помочь нам лучше обнаружить законы между вещами. Например, изучить потенциальные потребности пользователей, реализовать персонализированный поток информации и открыть законы между болезнями и симптомами или даже между болезнями и лекарствами.

Чтобы делать добрые дела заранее надо сначала наточить свои инструменты

Сначала поговорим о модулях анализа данных:

  1. Numpy эффективно обрабатывает данные и обеспечивает поддержку массивов.На него полагаются многие модули, такие как pandas, scipy и matplotlib, поэтому этот модуль является основой. Поэтому numpy должен быть установлен первым.
  2. pandas в основном используется для сбора и анализа данных
  3. scipy в основном занимается численными вычислениями. В то же время он поддерживает матричные операции и предоставляет множество расширенных функций обработки данных, таких как интегрирование и выборка дифференциальных уравнений.
  4. Модуль рисования matplotlib в сочетании с другими модулями анализа данных решает проблемы визуализации
  5. statsmodels Этот модуль в основном используется для статистического анализа
  6. Gensim Этот модуль в основном используется для анализа текста.
  7. sklearn, машинное обучение keras для первого и глубокое обучение для второго.

Давайте поговорим об основном использовании этих модулей.

установка и использование модуля numpy

Установить:
Адрес загрузки:Ууху. Парикмахерская. UCI. Квота / ~ идти будет немедленно / Пак Ючон…
Пакет, который я скачал здесь, имеет версию 1.11.3 и адрес:Ууху. Парикмахерская. UCI. Квота / ~ идти будет немедленно / Пак Ючон…
После загрузки используйте pip install "numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl"
Установленная версия numpy должна иметь версию mkl, которая лучше поддерживает numpy.

numpy прост в использовании
import numpy

x=numpy.array([11,22,33,4,5,6,7,])  #创建一维数组
x2=numpy.array([['asfas','asdfsdf','dfdf',11],['1iojasd','123',989012],["jhyfsdaeku","jhgsda"]])    #创建二维数组,注意是([])

x.sort()   #排序,没有返回值的,修改原处的值,这里等于修改了X
x.max()    # 最大值,对二维数组都管用
x.min()    # 最小值,对二维数组都管用
x1=x[1:3]   # 取区间,和python的列表没有区别скопировать код
генерировать случайные числа

В основном используйте случайный метод под numpy.

#numpy.random.random_integers(最小值,最大值,个数)  获取的是正数
data = numpy.random.random_integers(1,20000,30)   #生成整形随机数
#正态随机数  numpy.random.normal(均值,偏离值,个数)  偏离值决定了每个数之间的差 ,当偏离值大于开始值的时候,那么会产生负数的。
data1 = numpy.random.normal(3.2,29.2,10)    # 生成浮点型且是正负数的随机数скопировать код

pandas

использоватьpip install pandasПросто

Переходим непосредственно к коду: Давайте посмотрим на результаты, выдаваемые pandas, какой столбец числа в этой строке, число в первом столбце - это количество строк, найдите единицу по первой строке, в каком столбце находится:

print(b)
      0     1     2    3    
0     1     2     3  4.0
1  sdaf  dsaf  18hd  NaN
2  1463  None  None  NaNскопировать код

Общие методы следующие:

import pandas
a=pandas.Series([1,2,3,34,])   # 等于一维数组
b=pandas.DataFrame([[1,2,3,4,],["sdaf","dsaf","18hd"],[1463]])   # 二维数组
print(b.head())  # 默认取头部前5行,可以看源码得知
print(b.head(2))  # 直接传入参数,如我写的那样
print(b.tail())   # 默认取尾部前后5行
print(b.tail(1))     # 直接传入参数,如我写的那样скопировать код

Давайте взглянем на статистику панд по данным, поговорим об информации каждой строки

# print(b.describe())   # 显示统计数据信息
         3      # 3表示这个二维数组总共多少个元素
count  1.0      # 总数
mean   4.0      # 平均数
std    NaN      # 标准数
min    4.0      # 最小数
25%    4.0      # 分位数
50%    4.0      # 分位数
75%    4.0      # 分位数
max    4.0      # 最大值скопировать код

Функция транспонирования: преобразуйте количество строк в количество столбцов и преобразуйте количество столбцов в количество строк следующим образом:

print(b.T)   # 转置
   0     1     2   
0  1  sdaf  1463
1  2  dsaf  None
2  3  18hd  None
3  4   NaN   NaNскопировать код
Импорт данных через панд

pandas поддерживает различные форматы ввода.Здесь я просто перечислю наиболее часто используемые в повседневной жизни.Для получения дополнительных методов ввода вы можете проверить официальный сайт исходного кода и последнего.

CSV-файл

Если файл csv импортирован и отображается вывод, он будет выводиться в соответствии со строкой по умолчанию в файле csv и выводить столько столбцов, сколько есть.Например, если у меня есть пять столбцов данных, тогда он будет отображать пять столбцов, когда результаты вывода на печать.

csv_data = pandas.read_csv('F:\Learnning\CSDN-python大数据\hexun.csv')
print(csv_data)скопировать код
Лист Excel

Зависит от модуля xlrd, установите его. Как обычно, исходный вывод показывает исходный результат Excel, за исключением того, что в начале каждой строки добавляется номер строки.

excel_data = pandas.read_excel('F:\Learnning\CSDN-python大数据\cxla.xls')
print(excel_data)скопировать код
читать SQL

Зависит от PyMySQL, поэтому его необходимо установить. Когда pandas принимает sql в качестве входных данных, необходимо указать два параметра: первый — это оператор sql, а второй — экземпляр соединения sql.

conn=pymysql.connect(host="127.0.0.1",user="root",passwd="root",db="test")
sql="select * from fortest"
e=pda.read_sql(sql,conn)скопировать код
читать HTML

Зависит от модуля lxml, установите его.
Для веб-страниц HTTPS это зависит от модуля BeautifulSoup4, html5lib.
Чтение HTML будет только читать таблицу в HTML, то есть только читать<table>Содержимое упаковки с этикеткой.

html_data = pandas.read_html('F:\Learnning\CSDN-python大数据\shitman.html')   # 读取本地html文件。
html_from_online = pandas.read_html('https://book.douban.com/')  # 读取互联网的html文件
print(html_data)
print('html_from_online')скопировать код

Настало время отображать список через python, добавляя при этом идентификаторы строк и столбцов

читать текстовый файл

Вывод отображается с одновременно добавленными идентификаторами строк и столбцов.

text_data = pandas.read_table('F:\Learnning\CSDN-python大数据\dforsay.txt')
print(text_data)скопировать код

scipy

Метод установки заключается в том, чтобы сначала загрузить файл формата whl, а затем передатьpip install “包名”Установить. Адрес загрузки пакета whl:Ууху. Парикмахерская. UCI. Квота / ~ идти будет немедленно / Пак Ючон…

Анализ визуализации данных Matplotlib

Мы можем установить этот модуль напрямую, используя pip install. Нет необходимости заранее скачивать whl и устанавливать его через pip install.

См. код ниже:

from matplotlib import  pylab
import numpy
# 下面2行定义X轴,Y轴
x=[1,2,3,4,8]
y=[1,2,3,4,8]
# plot的方法是这样使用(x轴数据,y轴数据,展现形式)
pylab.plot(x,y)   # 先把x,y轴的信息塞入pylab里面,再调用show方法来画图
pylab.show()    # 这一步开始画图,默认是至线图скопировать код

Нарисованная картинка такая:
image

Поговорим о стиле измененного изображения

Различают следующие виды графики:
  1. Линейный график (по умолчанию)
  2. -прямая линия
  3. -- пунктирная линия
  4. -. -.форма
  5. : маленькая пунктирная линия
Что касается цветов, то они следующие:
  1. c-циан
  2. р-красный
  3. м-пурпурный
  4. г-зеленый
  5. б-синий
  6. у-желтый
  7. к-черный
  8. w-белый
По форме различают следующие виды:
  1. квадрат
  2. *звезда
  3. р пятиугольник

Мы также можем немного изменить график, добавить некоторые стили и изменить точечный график, чтобы он стал красной точкой Код выглядит следующим образом:

pylab.plot(x,y,'or')   # 添加O表示画散点图,r表示red
pylab.show()скопировать код

image

Мы также можем нарисовать пунктирный график, код выглядит следующим образом:

pylab.plot(x,y,'r:')
pylab.show()скопировать код

Вы также можете добавить заголовок, метки осей x, y к графику, код выглядит следующим образом

pylab.plot(x,y,'pr--')   #p是图形为五角星,r为红色,--表示虚线
pylab.title('for learnning')   # 图形标题
pylab.xlabel('args')   # x轴标签
pylab.ylabel('salary')   # y轴标签
pylab.xlim(2)    # 从y轴的2开始做线
pylab.show()скопировать код

image

Гистограмма

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

data1 = numpy.random.normal(5.0,4.0,10)   # 正态随机数
pylab.hist(data1)
pylab.show()скопировать код

image
Ось Y — это количество вхождений, а ось X — значение (или диапазон) этого числа.

Вы также можете указать тип гистограммы через параметр histtype:

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

  1. bar : это традиционная гистограмма типа bar.Если несколько данных
    are given the bars are aranged side by side.
  2. barstacked: представляет собой гистограмму столбчатого типа, в которой несколько
    data are stacked on top of each other.
  3. step : генерирует линейный график, который по умолчанию
    unfilled.
  4. stepfilled : генерирует линейный график, который по умолчанию
    filled.

Например:

sty=numpy.arange(1,30,2)
pylab.hist(data1,histtype='stepfilled')
pylab.show() скопировать код

image

Функция подкарты

Что такое функция подграфа? Подизображение — это большая доска для рисования, которая может отображать несколько маленьких изображений, и каждое маленькое изображение является подизображением большой доски для рисования. Мы знаем, что для создания графика используется функция plot, а подграф — это subplog. Код работает следующим образом:

#subplot(行,列,当前区域)
pylab.subplot(2,2,1)   # 申明一个大图里面划分成4块(即2*2),子图使用第一个区域(坐标为x=1,y=1)
pylab.subplot(2,2,2)  # 申明一个大图里面划分成4块(即2*2),子图使用第二个区域(坐标为x=2,y=2)
x1=[1,4,6,9]
x2=[3,21,33,43]
pylab.plot(x1,x2)   # 这个plot表示把x,y轴数据塞入前一个子图中。我们可以在每一个子图后使用plot来塞入x,y轴的数据
pylab.subplot(2,1,2)  # 申明一个大图里面划分成2块(即),子图使用第二个区域(坐标为x=1,y=2)
pylab.show()скопировать код

практический пример

Теперь мы можем отображать множество данных и легко обнаруживать аномалии на основе графика. Далее мы будем использовать файл csv для практики, этот файл csv представляет собой количество прочитанных статей и комментариев на веб-сайте.
Давайте поговорим о файловой структуре этого csv. Первый столбец — это порядковый номер, второй столбец — URL-адрес каждой статьи, третий столбец — количество прочтений статьи, а четвертый столбец — количество комментариев к статье. .
Наше требование состоит в том, чтобы использовать количество комментариев в качестве оси Y и количество прочтений в качестве оси X, поэтому нам нужно получить данные в третьем и четвертом столбцах. Мы знаем, что способ получить данные — это получить значение строки с помощью метода значений панд, нарезать значение этой строки и получить значения с индексами 3 (чтение) и 4 (комментарии), но здесь просто значение одной строки, нам нужно количество всех комментариев и чтений в этом файле csv, что делать? Вы скажете, что я настраиваю 2 списка, просматриваю csv-файл и добавляю количество прочтений и комментариев в соответствующие списки, не так ли? Хе-хе, на самом деле есть более быстрый метод, то есть использовать метод транспонирования T, так что с помощью метода значений вы можете напрямую получить количество комментариев и чтений, В настоящее время вы можете сделать это с помощью метод pylab в matplotlib.picture, тогда все в порядке. Как только вы поймете идею, напишите ее.

Взгляните на код ниже:


csv_data = pandas.read_csv('F:\Learnning\CSDN-python大数据\hexun.csv')
dt = csv_data.T   # 装置下,把阅读数和评论数转为行
readers=dt.values[3]   
comments = dt.values[4]
pylab.xlabel(u'reads')
pylab.ylabel(u'comments')   # 打上标签
pylab.title(u"The Article's reads and comments")
pylab.plot(readers,comments,'ob')
pylab.show()скопировать код

image