Skip to content

Instantly share code, notes, and snippets.

@allatambov
Last active June 26, 2018 15:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save allatambov/e1e19a21dc9a8a1969903fcbb6c1526a to your computer and use it in GitHub Desktop.
Save allatambov/e1e19a21dc9a8a1969903fcbb6c1526a to your computer and use it in GitHub Desktop.
26-06
# импортируем библиотеку
import numpy as np
# списки
L = [1, 2, 4, 0]
E = [[1, 0, 3], [3, 6, 7], []]
D = [[1, 3, 6], ['a', 'b', 'c']]
# массивы numpy
A = np.array(L)
A
A = np.array([1, 2, 4, 0])
A
A = np.array(1, 2, 4, 0)
# работа с массивом
A.dtype
A.ndim
A.shape
A[0]
A[0][0]
A.max()
A.mean()
A.size
A.tolist()
# многомерные массивы
S = np.array([[8, 1, 2], [2, 8, 9]])
S.ndim
S.max(axis=0)
S.max(axis=1)
S.shape
S.size
# обращение к элементам
S[0][0]
S[1][2]
# срезы
T = np.array([1, 3, 7], [8, 10, 1], [2, 8, 9, 5])
T
T[0:2]
T[0::2]
# как создать массив
# новый из списка - через np.array
# новый из имеющегося массива
old = np.array([[2, 5, 6], [9, 8, 0]])
old
new = old.reshape(3, 2)
new
# или из промежутка arange
# аналог range, но с любым шагом, в том числе дробным
np.arange(2, 9)
np.arange(2, 9, 0.5)
np.arange(2, 9, 0.5).reshape(2, 7)
# новый с нуля
Z = np.zeros((3, 3)) # к размерность в кортеже
Z
O = np.ones((4, 2))
O
Emp = np.empty((3, 2))
Emp
# изменение элементов массива
O[1][2] = 6
O
# Есть массив ages. Напишите программу с циклом, которая позволит
# получить массив ages_bin такой же размерности, что и ages,
# состоящий из 0 и 1 (0 - младше 18, 1 - не младше 18)
# подсказка: вложенный цикл
ages = np.array([[12, 16, 17, 18, 14], [20, 22, 18, 17, 23], [32, 16, 44, 16]])
# решение
shape = ages.shape
ages_bin = np.zeros(shape)
ages_bin
for i in range(0, shape[0]):
for j in range(0, shape[1]):
if ages[i][j] >= 18:
ages_bin[i][j] = 1
ages_bin
# почему массивы numpy - это удобно
A ** 2
A - 1
def my_log(x):
return np.log(x + 1)
my_log(A)
# от массивов к спискам
ages.flatten()
ages.flatten()[0]
ages.ravel()
# чем еще хорош numpy
# вычисления
np.log(3)
np.sqrt(7)
np.exp(2)
np.mean([2, 7, 8])
# операции с матрицами и векторами
m = np.array(np.mat('2 4; 1 6'))
m.T
m.diagonal()
v = np.zeros((3, 3))
np.fill_diagonal(v, 1)
m.trace()
a = np.array([1, 2, 3])
b = np.array([0, 4, 7])
a * b
np.dot(a, b)
np.cross(a, b)
np.invert(m)
np.linalg.det(m)
# совмещение с matplotlib
x = np.linspace(10, 100, 5) # 5 breaks
y = x ** 2
x
y
# см далее
# статистика
q = np.array([1., 0., 4.5, np.nan, 3.])
np.var(q)
np.nanvar(q)
np.median(q)
np.nanmedian(q)
x = np.array([2, 6, 8, 10, 12])
y = np.array([4, 7, 14, 21, 19])
np.corrcoef(x, y)
np.corrcoef(x, y)[0][1]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment