Обработка данных Python

Python анализ данных pandas NumPy

Numpy и Pandas — это две среды, часто используемые при обработке данных Python, они обе написаны на языке C, поэтому скорость работы высока. Matplotlib — это инструмент рисования для Python, который может рисовать ранее обработанные данные через изображения. Раньше я только читал грамматику, но систематически не изучал и не обобщал.В этом сообщении в блоге обобщаются API этих трех фреймворков.

Ниже приводится краткое введение и различия между этими тремя фреймворками:

  • Numpy: часто используется для генерации данных и некоторых операций.
  • Панды: на основе Numpy, это обновленная версия Numpy.
  • Matplotlib: мощный инструмент для построения графиков на Python

Numpy

Руководство по быстрому запуску Numpy может относиться к:Numpy tutorial

Непонятные свойства

ndarray.ndim: измерение
ndarray.shape: количество строк и столбцов, например (3, 5)
ndarray.size: количество элементов
ndarray.dtype: тип элемента

Numpy создать

array(object, dtype=None): используйте список или кортеж Python для создания данных
zeors(shape, dtype=float): создать данные со всеми 0
one(shape, dtype=None): создавать данные со всеми единицами
пустой (форма, dtype = float): создать данные без инициализации
arange([start,]stop, [step,]dtype=None): создать сегмент данных с фиксированным интервалом
linspace(начало, стоп, число=50, dtype=None): равномерно создавать данные в заданном диапазоне

пустые операции

Сложение, вычитание: а + b, а - b
Умножение: b*2, 10*np.sin(a)
Мощность: б**2
Оценка: aУмножение матриц: np.dot(A,B) или A.dot(B)
Другие: +=, -+, sin, cos, exp

Numpy-индексация

Метод индекса массива: A[1, 1]
Срез: A[1, 1:3]
Итерация: для элемента в A.flat

NumpyДругое

reshape (a, newshape): изменить форму данных без изменения исходных данных и вернуть новый набор данных.
resize(a, new_shape): изменение формы данных изменит исходные данные и не вернет данные
ravel(a): вернется в одном измерении

vstack(tup): объединить вверх и вниз
hstack(tup): объединить левое и правое
hsplit(ary, index_or_sections): разделить по горизонтали на n частей
vsplit(ary, index_or_sections): Вертикальное разделение на n частей

копия(а): глубокая копия

Pandas

Руководство по быстрому запуску Pandas может относиться к:10 Minutes to pandas

Структуры данных панд

В Pandas есть две структуры данных: Series и DataFrame.

Серия: индексы слева, значения справа. Создано следующим образом:

In [4]: s = pd.Series([1,3,5,np.nan,6,8])
In [5]: s
Out[5]: 
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

DataFrame: это табличная структура данных с индексом строки и индексом столбца, которую можно рассматривать как большой словарь, состоящий из серий. Создано следующим образом:

In [6]: dates = pd.date_range('20130101', periods=6)

In [7]: dates
Out[7]: 
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

In [8]: df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))

Pandas просмотр данных

индекс: индекс
столбцы: индекс столбца
значения: значение
head(n=5): вернуть первые n элементов данных
tail(n=5): вернуть последние n элементов данных
описать(): распечатать количество данных, среднее значение и другие данные
sort_index (ось = 1, по возрастанию = False): сортировать по индексу
sort_values(by='B'): сортировать по значению индекса

Панды выбирают данные

Метод выбора массива: df['A']
Метод выбора среза: df[0:3] или df['20130102':'20130104']
Выбрать по метке: df.loc['20130102':'20130104',['A','B']]
Выбрать по расположению: df.iloc[3:5,0:2]
Смешанный выбор: df.ix[:3,['A','C']]
Выбор условного суждения: df[df.A > 0]

Панды обрабатывают недостающие данные

Удалить строки с отсутствующими данными: df.dropna(how='any')
Заполните недостающие данные: df.fillna (значение = 5)
Является ли значение данных NaN: pd.isna(df1)

Панды объединяют данные

pd.concat ([df1, df2, df3], ось = 0): объединить df
pd.merge(left, right, on='key'): объединить в соответствии с ключевым полем
df.append(s, ignore_index=True): добавить данные

Импорт и экспорт панд

df.to_csv('foo.csv'): сохранить в CSV-файл
pd.read_csv('foo.csv'): чтение из CSV-файла
df.to_excel('foo.xlsx', sheet_name='Sheet1'): сохранить в файл excel
pd.read_excel('foo.xlsx', 'Лист1', index_col=None, na_values=['NA']): чтение из файла excel

Matplotlib

Вот только самый простой способ рисовать картинки:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 随机生成1000个数据
data = pd.Series(np.random.randn(1000),index=np.arange(1000))
# 为了方便观看效果, 我们累加这个数据
data.cumsum()
# pandas 数据可以直接观看其可视化形式
data.plot()
plt.show()