In [12]:
%%html
<style>
.text_cell_render * {
font-family: OfficinaSansCTT;
}
.reveal code {
font-family: OfficinaSansCTT;
}
.text_cell_render h3 {
font-family: OfficinaSansCTT;
}
.reveal section img {
max-height: 500px;
margin-left: auto;
margin-right: auto;
}
</style>
SELECT * FROM employees, managers WHERE employees.salary > 100000 AND employees.manager_id = managers.id
In [ ]:
import numpy as np
np.zeros(10) # вектор из 10 нулевых элементов
np.arange(9).reshape(3,3) # матрица 3х3 с числами от 0 до 8
m = np.eye(3) # единичная матрица
m.shape # размеры матрицы
a = np.random.random((3,3,3)) # трехмерная матрица 3x3x3 со случайными значениями
In [ ]:
In [ ]:
# Матрица numpy - многомерный массив и позволяет делать и менять срез по каждому из измерений
a[3, 4:5, 1:20:2]
In [ ]:
In [ ]:
import pandas as pd
# чтение CSV (крутые параметры: names, chunksize, dtype)
df = pd.read_csv("USlocalopendataportals.csv")
df.columns # названия колонок
df.head(15) # просмотр верхних 15 строчек
df["column"].apply(lambda c: c / 100.0) # применение функции к колонке
df["column"].str.%строковая функция% # работа со строковыми колонками
df["column"].astype(np.float32) # привести колонку к нужному типу
# а как сделать через apply?
df.groupby("column").mean() # операция агрегации
In [ ]:
In [ ]:
# выбор нескольких колонок
df[["Column 1", "Column 2"]]
# создать новую колонку
df["Сolumn"] = a # массив подходящего размера
# переименование колонки
df.rename(
columns={"Oldname": "Newname"},
inplace=True
)
# объединение нескольких условий выборки
df[df.col1 > 10 & df.col2 < 100] # можно еще | для OR
In [ ]:
Matplotlib (http://matplotlib.org/)
D3.js (https://d3js.org/ )
In [ ]:
# интеграция в IPython
%matplotlib inline
# основной объект
from matplotlib import pyplot as plt
In [ ]:
# столбиковая диаграмма прямо из Pandas
df["Column"].plot(kind="bar")
Подсказка - http://bit.ly/1eLirnL
In [ ]:
# http://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
# Load the diabetes dataset
diabetes = datasets.load_diabetes()
# Use only one feature
diabetes_X = diabetes.data[:, np.newaxis, 2]
# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# Create linear regression object
regr = linear_model.LinearRegression()
# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)
# Make predictions using the testing set
diabetes_y_pred = regr.predict(diabetes_X_test)
# The coefficients
print('Coefficients: \n', regr.coef_)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(diabetes_y_test, diabetes_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()