출처: https://github.com/rougier/numpy-100
import numpy as np
print(np.__version__)
print(np.show_config())
Z = np.zeros(10)
print(Z)
Z = np.zeros((10, 10))
print("%d bytes" % (Z.size * Z.itemsize))
%run `python -c "import numpy; numpy.info(numpy.add)"
Z = np.zeros(10)
Z[4] = 1
print(Z)
Z = np.arange(10, 50)
print(Z)
Z = np.arange(50)
Z = Z[::-1]
print(Z)
Z = np.arange(9).reshape(3, 3)
print(Z)
np = np.nonzero([0, 2, 4, 2, 0, 2])
print(np)
Z = np.eye(3)
print(Z)
Z = np.random.random((3, 3, 3))
print(Z)
Z = np.random.random((10, 10))
Zmin, Zmax = Z.min(), Z.max()
prinr(Zmin, Zmax)
Z = np.random.random(30)
m = Z.mean()
print(m)
Z = np.ones((10, 10))
Z[1:-1, 1:-1] = 0
print(Z)
Z = np.ones((5, 5))
Z = np.pad(Z, pad_width=1, mode='constant', constant_values=0)
print(Z)
# fancy하게 인덱스 사용하기
Z[:, [0:-1]] = 0
Z[[0:-1], :] = 0
prinr(Z)
print(0 * np.nan)
print(np.nan == np.nana)
print(np.inf > np.nan)
print(np.nan - np.nan)
print(np.nan in set([np.nan]))
print(0.3 == 3 * 0.1)
Z = np.diag(1+np.arrange(4), k=-1)
print(Z)
Z = np.zeros((8,8),dtype=int)
Z[1::2,::2] = 1
Z[::2,1::2] = 1
print(Z)
# 배열의 크기
shape = (6, 7, 8)
# 100번째 원소는 0-based index로 99번째 원소
element_index = 99
# NumPy의 unravel_index 함수를 사용해 1차원 인덱스를 3차원 인덱스로 변환
index_3d = np.unravel_index(element_index, shape)
print(index_3d)
# 또는 print(np.unravel_index(99,(6,7,8))로 한 줄 구현 가능
Z = np.tile(np.array([[0,1],[1,0]]), (4,4))
print(Z)
Z = np.random.random((5,5))
Z = (Z - np.mean(Z) / (np.std(Z))
print(Z)
color = np.dtype([("r", np.ubyte), ("g", np.ubyte), ("b", np.ubyte), ("a", np.ubyte)]
Z = np.dot(np.ones((5,3)), np.ones((3,2)))
print(Z)
# 파이썬 3.5 이상에서 가능한 다른 해결책
Z = np.ones((5,3)) @ np.ones((3,2))
print(Z)
Z = np.arrange(11)
Z[(3<Z)&(8<Z)] *= -1
print(Z)
print(sum(range(5), -1)
import numpy as *
print(sum(range(5), -1)
Z**Z
2 << Z >> 2
Z <- Z
ij*Z
Z/1/1
Z<Z>Z
print(np.array(0) / np.array(0))
print(np.array(0) // np.array(0))
print(np.array([np.nan]).astype(int).astype(float))
Z1 = random.randit(0, 10, 10)
Z2 = random.randint(0, 10, 10)
print(np.intersectid(Z1, Z2))