Numpy常用函数用法大全目录
点击函数名查看详解
排序 | 函数名 | 描述 |
A | array | 创建一个np数组 |
arange | 返回指定范围内的数组 | |
argmax | 返回沿轴axis最大值的索引 | |
B | bincount | 返回数组中的值中索引出现的次数 |
C | copysign | 将b中各元素的符号赋值给数组a的对应元素 |
D | dot | 矩阵运算 |
E | exp | e的N次方 |
F | full | 返回给定形状和类型的新数组,填充fill_value |
G | gradient | 返回N维数组的梯度 |
H | hsplit | 通过指定要返回的相同shape的array的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原array |
I | isnan | 测试NaN的元素,并将结果作为布尔数组返回 |
L | log | e的指数 |
linspace | 在指定的间隔内返回均匀间隔的数字 | |
M | max | 数组中最大的键 |
R | reshape | 不改变数据同时改变数据格式 |
random.choice | 随机分布一个数组 | |
random.randn | 返回一个或一组样本,具有标准正态分布 | |
S | sum | 每个数组各个键的总和 |
v | vsplit | 沿着垂直轴分割,其分割方式与hsplit用法相同 |
Z | zeros_like | 生成0填充形状和传入数组相同的数组 |
zeros | 返回来一个给定形状和类型的用0填充的数组 |
Numpy.array(p_object, dtype=None, ndmin=0)
- p_object :array_like,数组,对象,其方法返回一个数组或任何(嵌套的)序列。
- dtype:data-type,数据类型,可选,数组所需的数据类型,默认最小类型序列。
- ndmin:int,最小维数,可选,默认0。
import numpy as np
// p_object
a, b = [1, 2], {3, 4}
np.array(a) // [1 2]
np.array(b) // {3, 4}
// dtype 转换元素类型
np.array([1, 2], dtype=str) // ['1' '2']
// ndmin 设置2会嵌套一层维度
a = [1,8,4,1,3,4,5]
np.array(a, ndmin=2) // [[1 8 4 1 3 4 5]]
D
Numpy.arange([start, ]stop, [step, ]dtype=None)
- start:number,可选,开始,默认的起始值是0。
- stop:number,可选,结束。
- step:number,可选,间隔。
- dtype: dtype,可选,输出数组的类型,默认推断类型。
import numpy as np
// 一个参数3.0结束
np.arange(3.0) // [0. 1. 2.]
// 两个参数3开始6结束
np.arange(3, 7) // [3 4 5 6]
// dtype转换类型
np.arange(3, 7, dtype=float) // [3. 4. 5. 6.]
// 三个参数3.0开始6.0结束,间隔0.5
np.arange(3.0, 7.0, 0.5) // [3. 3.5 4. 4.5 5. 5.5 6. 6.5]
numpy.dot(a, b)
- a,数组1
- b,数组2
import numpy as np
a = [[1, 0], [0, 1]]
b = [[4, 1], [2, 2]]
np.dot(a, b)
// [[4 1]
[2 2]]
4 = 1 * 4 + 0 * 2
1 = 1 * 1 + 0 * 2
2 = 0 * 4 + 1 * 2
2 = 0 * 1 + 1 * 2
numpy.exp(x)
- a,数组1或int
import numpy as np
np.exp(1)
// 2.718281828459045
// e的n次方
np.exp([1,2])
// [2.71828183 7.3890561 ] e的1 2 次方
np.log()
- a,数组1或int
import numpy as np
np.log(np.exp(4))
// 4.0
// e的指数
x.reshape() 不改变数据同时改变数据格式
- a,数组1或int
import numpy as np
np.arange(6).reshape((3, 2))
// [[0 1]
[2 3]
[4 5]]
np.sum() 每个数组各个键的总和
- a,数组1或int
import numpy as np
np.sum([1,3,4])
// 8
np.max() 返回数组最大值
- a,数组1或int
import numpy as np
np.max([2,5,6,7])
// 7
np.zeros_like() 生成0填充形状和传入数组相同的数组
import numpy as np
np.zeros_like([2,3])
// [0 0]
np.random.choice() 随机分布一个数组
import numpy as np
# 参数
# 是从a中以概率p,随机选择size个, p没有指定的时候相当于是一致的分布
# replace 如果是False的话,3个值不一样
np.random.choice(a=5, size=3, replace=False, p=None)
// [4 1 2]
np.random.choice(a=5, size=2, replace=False, p=[0.2, 0.1, 0.3, 0.4, 0.0])
// [3 2] 4的概率为0
np.linspace() 在指定的间隔内返回均匀间隔的数字
import numpy as np
# 也就是说生成 2 到 3 之间,每个元素的左右±数一致,也就是等差数,并且生成5个
np.linspace(2.0, 3.0, num=5)
# array([ 2. , 2.25, 2.5 , 2.75, 3. ])
# endpoint=false表示不包含3.0,默认true
np.linspace(2.0, 3.0, num=5, endpoint=False)
# array([ 2. , 2.2, 2.4, 2.6, 2.8])
# true返回间距数0.25,默认false
np.linspace(2.0, 3.0, num=5, retstep=True)
# (array([ 2. , 2.25, 2.5 , 2.75, 3. ]), 0.25)
np.argmax() 返回沿轴axis最大值的索引
a = [[0, 1, 2], [3, 4, 5]]
np.argmax(a)
# 5
np.argmax(a, axis=0) # 0代表列
# array([1, 1, 1])
np.argmax(a, axis=1)# 1代表行
# array([2, 2])
np.zeros() 返回来一个给定形状和类型的用0填充的数组
np.zeros(5)
# array([ 0., 0., 0., 0., 0.])
np.zeros((5,), dtype=np.int)
# array([0, 0, 0, 0, 0])
np.zeros((2, 1))
# array([[ 0.],
# [ 0.]])
a = (2,2)
np.zeros(a)
# array([[ 0., 0.],
# [ 0., 0.]])
np.bincount() 返回数组中的值中索引出现的次数
# x中最大的数为7,那么它的索引值为0-7
x = np.array([0, 1, 1, 3, 2, 1, 7, 7])
# 索引0出现了1次,索引1出现了3次,索引2出现了1次,索引3出现了1次,索引4出现了0次,索引7出现了2次
np.bincount(x)
#因此,输出结果为:array([1, 3, 1, 1, 0, 0, 0, 2])
np.copysign() 将b中各元素的符号赋值给数组a的对应元素
np.copysign(1.3, -1)
# -1.3
1/np.copysign(0, 1)
# inf
1/np.copysign(0, -1)
# -inf
np.full() 返回给定形状和类型的新数组,填充fill_value
np.full((2, 2), np.inf)
# array([[ inf, inf],
# [ inf, inf]])
np.full((2, 2), 10)
# array([[10, 10],
# [10, 10]])
np.gradient() 返回N维数组的梯度
f = np.array([1, 2, 4, 7, 11, 16], dtype=float)
np.gradient(f)
# array([ 1. , 1.5, 2.5, 3.5, 4.5, 5. ])
np.gradient(f, 2)
# array([ 0.5 , 0.75, 1.25, 1.75, 2.25, 2.5 ])
np.hsplit() 通过指定要返回的相同shape的array的数量,或者通过指定分割应该发生之后的列来沿着其横轴拆分原
import numpy as np
harr = np.floor(10 * np.random.random((2, 6)))
print(harr)
print(np.hsplit(harr, 3))
# 原array:
[[ 8. 5. 0. 2. 3. 8.]
[ 0. 2. 9. 5. 8. 2.]]
# 拆分后:
[array([[ 8., 5.],
[ 0., 2.]]), array([[ 0., 2.],
[ 9., 5.]]), array([[ 3., 8.],
[ 8., 2.]])]
np.isnan() 测试NaN的元素,并将结果作为布尔数组返回
np.isnan(np.nan)
# True
>>> np.isnan(np.inf)
# False
np.isnan([np.log(-1.),1.,np.log(0)])
# array([ True, False, False], dtype=bool)
np.vsplit() 沿着垂直轴分割,其分割方式与hsplit用法相同
varr = np.arange(16).reshape([4,4])
print(varr)
print(np.vsplit(varr, 2))
# 原array为:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
# 拆分后:
[array([[0, 1, 2, 3],
[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],
[12, 13, 14, 15]])]
np.random.randn() 返回一个或一组样本,具有标准正态分布
np.random.randn(2,4)
# array([[ 0.27795239, -2.57882503, 0.3817649 , 1.42367345],
# [-1.16724625, -0.22408299, 0.63006614, -0.41714538]])