在我的Github上有一份代码与教程结合的jupyter Notebook文件,大家可以clone下来看一看。
下面会用实例的方式给出一些examples:
Tutorial教程
官方中文文档
import numpy as np
array1 = np.array([1, 2, 3])
print(array1)
print(np.array([(1, 2, 3), (4, 5, 6)]))
print(np.zeros((3, 3)))
print(np.ones((2, 3, 4)))
print(np.arange(10))
print(np.arange(6).reshape(2, 3))
print(np.eye(3))
print(np.linspace(1, 10, num = 6))
print(np.random.rand(2, 3))
print(np.random.randint(5, size = (2, 3)))
print(np.fromfunction(lambda x, y: x + y, (3, 3)))
a = np.array([10, 20, 30, 40, 50])
b = np.arange(1, 6)
print(a)
print(b)
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print('以上操作均在一维数组上进行')
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
print(A)
print(B)
print(A + B)
print(A - B)
print(A * B)
print(np.dot(A, B))
print(np.mat(A) * np.mat(B))
print(20 * A)
print(A.T)
print(np.linalg.inv(A))
print('以上操作均在二维数组或矩阵中进行')
print('Math Function example')
print(a)
print(np.sin(a))
print(np.exp(a))
print(np.sqrt(a))
print('Array split & index')
a = np.array([1, 2, 3, 4, 5])
print(a[0])
print(a[-3])
print(a[0: 2])
print(a[: -1])
a = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)])
print(a[0])
print(a[-1])
print(a[:, -1])
print('Array Shape')
a = np.random.random((3, 2))
print(a)
print(a.shape)
print(a.reshape(2, 3))
print(a)
print(a.resize(2, 3))
print(a)
print(a.ravel())
a = np.random.randint(10, size = (3, 3))
b = np.random.randint(10, size = (3, 3))
print(a)
print(b)
print(np.vstack((a, b)))
print(np.hstack((a, b)))
print(np.vsplit(a, 3))
print(np.hsplit(a, 3))
a = np.array(([1, 4, 3], [6, 2, 0], [9, 7, 5]))
print(a)
print(np.max(a, axis = 0))
print(np.min(a, axis = 1))
print(np.argmax(a, axis = 0))
print(np.argmin(a, axis = 1))
print('Array Count')
print(np.median(a, axis = 0))
print(np.mean(a, axis = 1))
print(np.average(a, axis = 0))
print(np.var(a, axis = 1))
print(np.std(a, axis = 0))
Z = np.ones((6, 6))
Z[1: -1, 1: -1] = 0
print(Z)
Z = np.ones((6, 6))
Z = np.pad(Z, pad_width = 1, mode = 'constant', constant_values = 0)
'''
Examples
--------
>>> x = np.arange(9).reshape((3,3))
>>> x
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> np.diag(x)
array([0, 4, 8])
>>> np.diag(x, k=1)
array([1, 5])
>>> np.diag(x, k=-1)
array([3, 7])
>>> np.diag(np.diag(x))
array([[0, 0, 0],
[0, 4, 0],
[0, 0, 8]])
'''
Z = np.diag(1 + np.arange(5), k = -1)
print(Z)
Z = np.zeros((10, 10), dtype = int)
Z[1::2, ::2] = 1
Z[::2, 1::2] = 1
print(Z)
Z = np.arange(11)
print(Z)
Z[(1 < Z) & (Z <= 9)] *= -1
print(Z)
Z1 = np.random.randint(0, 10, 10)
Z2 = np.random.randint(0, 10, 10)
print("Z1:", Z1)
print("Z2:", Z2)
print(np.intersect1d(Z1, Z2))
yesterday = np.datetime64('today', 'D') - np.timedelta64(1, 'D')
today = np.datetime64('today', 'D')
tomorrow = np.datetime64('today', 'D') + np.timedelta64(1, 'D')
print("yesterday: ", yesterday)
print("today: ", today)
print("tomorrow: ", tomorrow)
Z = np.random.uniform(0, 10, 10)
print('init:', Z)
print('way 1:', Z - Z % 1)
print('way 2:', np.floor(Z))
print('way 3:', np.ceil(Z) - 1)
print('Way 4:', Z.astype(int))
print('Way 5:', np.trunc(Z))
Z = np.zeros((5, 5))
Z += np.arange(1, 6)
print(Z)
Z = np.linspace(0, 1, 6, endpoint = False)[1:]
print(Z)
Z = np.random.random(10)
Z.sort()
print(Z)
Z = np.array([[7, 4, 3], [3, 1, 2], [4, 2, 6]])
print("original array:\n", Z)
Z.sort(axis = 0)
print(Z)
Z = np.random.random(5)
print('Original Array:\n', Z)
Z[Z.argmax()] = 0
print(Z)
for dtype in [np.int8, np.int32, np.int64]:
print("The minimum value of {}: ".format(dtype), np.iinfo(dtype).min)
print("The maximum value of {}: ".format(dtype), np.iinfo(dtype).max)
for dtype in [np.float32, np.float64]:
print("The minimum value of {}: ".format(dtype), np.finfo(dtype).min)
print("The maximum value of {}: ".format(dtype), np.finfo(dtype).max)
Z = np.arange(10, dtype = np.float32)
print(Z)
Z = Z.astype(np.int32, copy = False)
print(Z)
Z = np.random.randint(0, 10, (5, 5))
print("排序前:\n", Z)
print(Z[Z[:, 2].argsort()])
Z = np.random.uniform(0, 1, 20)
print('random array:\n', Z)
z = 0.5
m = Z.flat[np.abs(Z - z).argmin()]
print(m)
Z = np.arange(25).reshape(5, 5)
print(Z)
Z[[0, 1]] = Z[[1, 0]]
print(Z)
Z = np.random.randint(0, 10, 50)
print('random array:', Z)
print(np.bincount(Z).argmax())
Z = np.nonzero([1, 1, 1, 1, 0, 0, -1, 0])
print(Z)
p = 3
Z = np.zeros((5, 5))
np.put(Z, np.random.choice(range(5 * 5), p, replace = False), 1)
print(Z)
X = np.random.rand(3, 3)
print(X)
Y = X - X.mean(axis = 1, keepdims = True)
print(Y)
X = np.random.uniform(0, 1, (3, 3))
Y = np.random.uniform(0, 1, (3, 3))
print(np.dot(X, Y))
print('speed lower:')
print(np.diag(np.dot(X, Y)))
print('speed quicker:')
print(np.einsum("ij, ji->i", X, Y))
Z = np.random.randint(1, 100, 100)
print(Z)
p = 5
print(Z[np.argsort(Z)[-p: ]])
Z = np.random.random((5, 5))
print(Z)
np.set_printoptions(precision = 2)
print(Z)
Z = np.random.random([5, 5])
print(Z)
print(Z / 1e3)
a = np.arange(15)
print(a)
print(np.percentile(a, q = [25, 50, 75]))
Z = np.random.rand(10, 10)
print("Z:\n", Z)
Z[np.random.randint(10, size = 5), np.random.randint(10, size = 5)] = np.nan
print(Z)
print(np.sum(np.isnan(Z), axis = 1) == 0)
Z = np.random.randint(0, 100, 25).reshape(5, 5)
print(Z)
print(np.unique(Z, return_counts = True))
Z = np.random.randint(1, 4, 10)
print(Z)
label_map = {1: 'car', 2: 'bus', 3:'train'}
print([label_map[x] for x in Z])
Z = np.random.randint(100, size = 10)
print('Array:', Z)
print(Z.argsort())
Z = np.random.randint(1, 100, [5, 5])
print(Z)
print(np.amax(Z, axis = 1))
Z = np.random.randint(1, 100, [5, 5])
print(Z)
print(np.apply_along_axis(np.min, arr = Z, axis = 1))
X = np.array([1, 2])
Y = np.array([5, 6])
print(np.sqrt(np.power((6 - 2), 2) + np.power((5 - 1), 2)))
print(np.linalg.norm(Y - X))
a = np.array([1 + 2j, 3 + 4j, 5 + 6j])
print('real:', a.real)
print('imag:', a.imag)
matrix = np.array([[1., 2.], [3., 4.]])
inverse_matrix = np.linalg.inv(matrix)
assert np.allclose(np.dot(matrix, inverse_matrix), np.eye(2))
print(inverse_matrix)
def zscore(x, axis = None):
xmean = x.mean(axis, keepdims = True)
xstd = np.std(x, axis = axis, keepdims = True)
zscore = (x - xmean) / xstd
return zscore
Z = np.random.randint(10, size = (5, 5))
print(Z)
print('Z-Score\n')
print(zscore(Z))
def min_max(x, axis = None):
min = X.min(axis = axis, keepdims = True)
max = X.max(axis = axis, keepdims = True)
result = (x - min) / (max - min)
return result
Z = np.random.randint(10, size = (5, 5))
print('original Z\n')
print(Z)
print(min_max(Z))
def l2_normalize(v, axis = 1, order = 2):
l2 = np.linalg.norm(v, ord = order, axis = axis, keepdims = True)
l2[l2 == 0] = 1
return v / 12
z = np.random.randint(10, size = (5, 5))
print(z)
print(l2_normalize(z))
Z = np.array([
[1, 2, 1, 9, 10, 3, 2, 6, 7],
[2, 1, 8, 3, 7, 5, 10, 7, 2],
[2, 1, 1, 8, 9, 4, 3, 5, 7]
])
'''
相关性系数取值从 [−1,1] 变换,靠近 1 则代表正相关性较强, −1
则代表负相关性较强。
结果如下所示,变量 A 与变量 A 直接的相关性系数为 1,因为是同一个变量。
变量 A 与变量 C 之间的相关性系数为 0.97,说明相关性较强。
'''
print(np.corrcoef(Z))
M = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
w, v = np.linalg.eig(M)
print(w)
print(v)
print(v * np.diag(w) * np.linalg.inv(v))
print('===========')
z = np.random.randint(1, 10, 10)
print(Z)
print(np.diff(Z, n = 1))
print(np.diff(Z, n = 2))
print(np.diff(Z, n = 3))
print('add===============')
Z = np.random.randint(1, 10, 10)
print(Z)
print(np.cumsum(Z))
m1 = np.array([1, 2, 3])
m2 = np.array([4, 5, 6])
print(np.c_[m1, m2])
m1 = np.array([1, 2, 3])
m2 = np.array([4, 5, 6])
print(np.r_[m1, m2])
print(np.fromfunction(lambda x, y: (x + 1) * (y + 1), (9, 9)))
print('image =============')
from io import BytesIO
from PIL import Image
import pylab
import PIL
import requests
URL = 'https://i.loli.net/2020/07/16/9H6Kwo8vifTVS7O.jpg'
response = requests.get(URL)
I = Image.open(BytesIO(response.content))
picture = np.asarray(I)
print(picture)
from matplotlib import pyplot as plt
plt.imshow(picture)
pylab.show()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)