Numpy的常用方法(持续更新)
2018-02-17 本文已影响0人
best_coder
1. 创建数组
- 使用array()函数创建
vector = np.array([1, 2, 3, 4]) 一维数组
vector = np.array([[], [], []]) 多维数组
- 使用arange()函数,linspace()函数创建一个等差数组
arr = np.arange(15)
[output] array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
arr = np.arange(1, 10)
[output] array([1, 2, 3, 4, 5, 6, 7, 8, 9])
arr = np.arange(0, 10, 2)
[output] array([0, 2, 4, 6, 8])
- 使用random()函数创建一个随机数组
arr = np.random.random(3)
[output] array([ 0.53340376, 0.38891447, 0.46406961])
- 使用zeros()函数创建一个全0数组
arr = np.zeros((3, 4, 5), dtype=np.int32)
[output] array([[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]],
[[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]]], dtype=int32)
- 使用ones()函数创建一个全一数组
arr = np.ones((2, 3, 4))
[output] array([[[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]],
[[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]]])
2. 数组的属性
- ndim 数组的维度(dimension)的总数
- shape 数组的维度,返回的是一个元祖(tuple)
- size 数组的总元素个数
- dtype 数组元素的类型
arr = np.arange(15).reshape(3, 5)
arr.ndim
[output] 2
arr.shape
[output] (3, 5)
arr.size
[output] 15
arr.dtype
[output] dtype('int64')
type(arr)
[output] numpy.ndarray
3. 常见的函数
- reshape(), resize()函数,改变数组的维度
A = np.linspace(0, 10, 6)
[output] array([ 0., 2., 4., 6., 8., 10.])
A.reshape(2, 3)
[output] array([[ 0., 2., 4.],
[ 6., 8., 10.]])
A.resize(2, 3)
[output] array([[ 0., 2., 4.],
[ 6., 8., 10.]])
resize()和reshape()都能改变数组的维度,reshape()函数返回的是一个已修改好维度的数组,并不改变原数组,resize()函数会直接对原数组进行修改
- astype()函数改变数组的类型
B = A.astype(np.int)
[output] array([[ 0, 2, 4],
[ 6, 8, 10]])
- ravel(), flatten()函数,将数组转化成一维数组
B.ravel()
[output] array([ 0, 2, 4, 6, 8, 10])
B.flatten()
[output] array([ 0, 2, 4, 6, 8, 10])
ravel()和flatten()函数返回的是一个一维的数组,但是并不改变原数组
- min(), max(), mean(), sum()函数
B.min()
[output] 0
B.min(axis=0)
[output] array([0, 2, 4])
B.min(axis=1)
[output] array([0, 6])
B.max()
[output] 10
B.max(axis=0)
[output] array([ 6, 8, 10])
B.max(axis=1)
[output] array([ 4, 10])
- argmax()函数:得到特定维度最大值的下标
C = np.argmax(B, axis=0)
[output] array([1, 1, 1])
C = np.argmax(B, axis=1)
[output] array([2, 2])
- view(), copy()函数,对数组进行复制
A = np.arange(6).reshape(2, 3)
B = A.view()
B[0, 0] = 9999
A
[output] array([[9999, 1, 2],
[ 3, 4, 5]])
B = A.copy()
B[0, 0] = 12345
A
[output] array([[9999, 1, 2],
[ 3, 4, 5]])
view()是深复制,改变复制的数组的同时也会改变原数组,copy()是浅复制,改变复制的数组,不会改变原数组
4. 简单的运算
- T转置,floor()函数:向下取整,ceil()函数:向上取整
- dot()函数:点乘
- 三角函数:cos(), sin()
- add()函数,exp()函数,sqrt()函数
- cumsum()函数:特定的维度的累加值
- *,+,-,/运算