引入numpy 模块:
import numpy as np
array = np.array([[1,2,3],[4,5,6]], dtype = np.float)
print(array)
print(array.dtype)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size:',array.size)
输出:
[[ 1. 2. 3.]
[ 4. 5. 6.]]
float64
(‘number of dim:’, 2)
(‘shape:’, (2L, 3L))
(‘size:’, 6)
a = np.zeros(shape=(2,2))
print(a)
输出:
[[ 0. 0.]
[ 0. 0.]]
a = np.ones(shape=(3,3),dtype = np.int32)
print(a)
输出:
[[1 1 1]
[1 1 1]
[1 1 1]]
a = np.eye(2,2)
print(a)
输出:
[[ 1. 0.]
[ 0. 1.]]
a = np.arange(10, 20, 2)
print(a)
输出
[10 12 14 16 18]
a = np.linspace(0, 10, 5)
print(a)
输出
[ 0. 2.5 5. 7.5 10. ]
a = np.arange(12).reshape((3,4))
print(a)
输出
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
a = np.array([1,1,1])
print a[:, np.newaxis]
输出
[[1]
[1]
[1]]
print a > 25
print a == b
print a == 10
输出
[False False True True]
[False False False False]
[ True False False False]
a = np.array([[4, 3, 2], [2, 1, 4]])
print np.sort(a, axis=1)
输出
[[2 3 4]
[1 2 4]]
dtype = [('Name', 'S10'), ('Height', float), ('Age', int)]
values = [('Li', 1.8, 41), ('Wang', 1.9, 38), ('Duan', 1.7, 38)]
a = np.array(values, dtype=dtype)
print np.sort(a, order=['Age', 'Height'])
输出
[(‘Duan’, 1.7, 38) (‘Wang’, 1.9, 38) (‘Li’, 1.8, 41)]
小于min或大于max的元素直接置为min或max
c = np.array([[1.0, 2.0], [3.0, 4.0]])
print np.clip(c, 1, 2)
输出
[[ 1. 2.]
[ 2. 2.]]
c = np.array(np.arange(12)).reshape((3,4))
print c.flatten()
输出
[ 0 1 2 3 4 5 6 7 8 9 10 11]
a = np.array([10, 20, 30, 40])
b = np.array(np.arange(12)).reshape((3,4))
print a[a >20]
print b[:2, :]
print b[:, 2:]
输出
[30 40]
[[0 1 2 3]
[4 5 6 7]]
[[ 2 3]
[ 6 7]
[10 11]]
首先创建两个数组:
a = np.array([10, 20, 30, 40])
b = np.arange(1, 5)
print a + b
输出
[11 22 33 44]
print a / b
输出
[10 10 10 10]
print b**3
输出
[ 1 8 27 64]
print np.sin(a)
print np.tan(b)
输出
[-0.54402111 0.91294525 -0.98803162 0.74511316]
[ 1.55740772 -2.18503986 -0.14254654 1.15782128]
转置
c = np.arange(9).reshape((3,3))
print np.transpose(c) # a.T, c.transpose()
输出
[[0 3 6]
[1 4 7]
[2 5 8]]
矩阵相乘
print np.dot(a,np.transpose(b)) # a.dot(b.T)
输出
300
矩阵逆
c = np.array([[1.0, 2.0], [3.0, 4.0]])
print np.linalg.inv(c)
输出
[[-2. 1. ]
[ 1.5 -0.5]]
c = np.array([[1.0, 2.0], [3.0, 4.0]])
print c.min(axis=0)
print c.max(axis=1)
print c.sum()
print c.mean()
输出
[ 1. 2.]
[ 2. 4.]
10.0
2.5
print np.argmax(a)
print np.argmin(a)
输出
3
0
print np.cumsum(a)
print np.diff(a)
输出
[ 10 30 60 100]
[10 10 10]
c = np.array([[0.0, 2.0], [3.0, 4.0]])
print np.nonzero(c)
输出
(array([0, 1, 1], dtype=int64), array([1, 0, 1], dtype=int64))
a = np.arange(12).reshape((3, 4))
print np.split(a, 2, axis=1)
输出
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
a = np.arange(12).reshape((3, 4))
print np.vsplit(a, 3)
输出
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
a = np.arange(12).reshape((3, 4))
print np.hsplit(a, 2)
输出
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
a = np.array([1,2,3])
b = np.array([4,5,6])
print np.concatenate((a, b))
print np.concatenate((a[:,np.newaxis], b[:,np.newaxis]), axis=1)
输出
[1 2 3 4 5 6]
[[1 4]
[2 5]
[3 6]]
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
print np.vstack((a,b))
输出
[[1 1 1]
[2 2 2]]
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
print np.hstack((a,b))
输出
[1 1 1 2 2 2]
numpy.random模块分为四个部分:
函数名 | 函数功能 | 参数说明 |
---|---|---|
rand(d0, d1, …, dn) | 产生均匀分布的随机数 | dn为第n维数据的维度 |
randn(d0, d1, …, dn) | 产生标准正态分布随机数 | dn为第n维数据的维度 |
randint(low[, high, size, dtype]) | 产生随机整数 | low:最小值;high:最大值;size:数据个数 |
random_sample([size]) | 在[0,1)内产生随机数 | size:随机数的shape |
print np.random.randint(0,10,5)
print np.random.randn(2,2)
输出
[[ 0.24565135 -0.70674316]
[-0.57555779 0.43117502]]
函数名 | 函数功能 | 参数说明 |
---|---|---|
shuffle(x) | 打乱对象x(多维矩阵按照第一维打乱) | 矩阵或者列表 |
permutation(x) | 打乱并返回该对象(多维矩阵按照第一维打乱) | 整数或者矩阵 |
a = np.array([10, 20, 30, 40])
np.random.shuffle(a)
print a
输出
[30 40 20 10]
函数名 | 函数功能 |
---|---|
beta(a, b[, size]) | 贝塔分布样本,在 [0, 1]内 |
binomial(n, p[, size]) | 二项分布的样本 |
exponential([scale, size]) | 指数分布 |
logistic([loc, scale, size]) | Logistic分布样本 |
lognormal([mean, sigma, size]) | 对数正态分布 |
multinomial(n, pvals[, size]) | 多项分布 |
multivariate_normal(mean, cov[, size]) | 多元正态分布 |
normal([loc, scale, size]) | 正态(高斯)分布 |
poisson([lam, size]) | 泊松分布 |
uniform([low, high, size]) | 均匀分布 |
print np.random.normal(1, 5, 10)
print np.random.uniform([0, 1, 2])
输出
[-4.38667406 -2.65368275 8.44676789 2.89982949 5.66674056]
[ 0.61799423 0.44157577]
函数名 | 函数功能 | 参数说明 |
---|---|---|
RandomState | 定义种子类 | RandomState是一个种子类,提供了各种种子方法,最常用seed |
seed([seed]) | 定义全局种子 | 参数为整数或者矩阵 |
np.random.seed(1234)