numpy常用函数笔记
来源:互联网 发布:目标 知乎 编辑:程序博客网 时间:2024/06/05 06:58
The Basics
import numpy as np
- arange 类似range 构造一个长度为15的数组
a=np.arange(15);a
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
- reshape 将array中的元素重新排列,构成一个 m*n的矩阵
a=a.reshape(3,5);a
array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
- ndim 维度 shape 形状 size 矩阵中元素个数 dtype 数据类型 itemsize 元素大小
(a.ndim,a.shape,a.size,a.dtype,a.itemsize)
(2, (3, 5), 15, dtype('int64'), 8)
a=np.array([2,3,4]);a
array([2, 3, 4])
np.zeros((3,4)) # 构造一个3*4的全0矩阵
array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
np.ones((3,4)) # 构造一个3*4的全1矩阵
array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]])
np.empty((3,4)) # 构造一个空矩阵 , 元素值随机
array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]])
np.arange(10,30,5) # 通过步长构造
array([10, 15, 20, 25])
np.linspace(0,2,9) # 构造浮点数 0到2 直接的9个数
array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
A = np.array( [[1,1],[0,1]] );B = np.array( [[2,0],[3,4]] )
A*B # 矩阵中对应元素相乘
array([[2, 0], [0, 4]])
A.dot(B) # 数学意义上的矩阵乘法
array([[5, 4], [3, 4]])
a=np.random.random((2,3)) # 随机数
a.sum(),a.min(),a.max()
(1.6231236054863918, 0.015016836871937334, 0.9391410245273063)
b=np.arange(12).reshape((3,4));b
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
b.sum(axis=0) # 求第一列的和
array([12, 15, 18, 21])
索引切片和迭代
a=np.arange(10)**3;a
array([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729])
a[2:5] # 与python切片一样
array([ 8, 27, 64])
a[::-1] # 反转
array([729, 512, 343, 216, 125, 64, 27, 8, 1, 0])
b=np.arange(20).reshape(5,4);b
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19]])
b[2,3]
11
b[0:5,1] # 每一行的第二列
array([ 1, 5, 9, 13, 17])
b[:,1] #所有行的第二列
array([ 1, 5, 9, 13, 17])
b[1:3,:] # 第二行和第三行的所有列
array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]])
形状
a = np.floor(10*np.random.random((3,4)))
a.shape
(3, 4)
a.ravel() # returns the array, flattened
array([ 5., 4., 8., 9., 1., 5., 0., 4., 5., 6., 7., 5.])
a.reshape(6,2)
array([[ 5., 4.], [ 8., 9.], [ 1., 5.], [ 0., 4.], [ 5., 6.], [ 7., 5.]])
a.T
array([[ 5., 1., 5.], [ 4., 5., 6.], [ 8., 0., 7.], [ 9., 4., 5.]])
a.T.shape
(4, 3)
数组合并
a = np.floor(10*np.random.random((2,2)));a
array([[ 5., 0.], [ 8., 7.]])
b = np.floor(10*np.random.random((2,2)));b
array([[ 3., 8.], [ 0., 9.]])
np.vstack((a,b))
array([[ 5., 0.], [ 8., 7.], [ 3., 8.], [ 0., 9.]])
np.hstack((a,b))
array([[ 5., 0., 3., 8.], [ 8., 7., 0., 9.]])
数组切分
a = np.floor(10*np.random.random((2,12)));a
array([[ 8., 0., 3., 3., 0., 1., 3., 8., 3., 5., 6., 6.], [ 6., 7., 1., 3., 3., 6., 0., 8., 1., 3., 9., 3.]])
np.hsplit(a,3)
[array([[ 8., 0., 3., 3.], [ 6., 7., 1., 3.]]), array([[ 0., 1., 3., 8.], [ 3., 6., 0., 8.]]), array([[ 3., 5., 6., 6.], [ 1., 3., 9., 3.]])]
索引技巧
- 通过其他数组索引
a = np.arange(12)**2;a
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121])
i=np.array( [ 1,1,3,8,5 ]);i
array([1, 1, 3, 8, 5])
a[i]
array([ 1, 1, 9, 64, 25])
j = np.array( [ [ 3, 4], [ 9, 7 ] ] );j #这是一个新矩阵,元素是在a总的位置
array([[3, 4], [9, 7]])
a[j]
array([[ 9, 16], [81, 49]])
- 通过布尔值索引
a = np.arange(12).reshape(3,4);a
array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
b=a>4;b
array([[False, False, False, False], [False, True, True, True], [ True, True, True, True]], dtype=bool)
a[b]
array([ 5, 6, 7, 8, 9, 10, 11])
a[b]=0;a
array([[0, 1, 2, 3], [4, 0, 0, 0], [0, 0, 0, 0]])
随机数
import numpy.random as random
random.rand(2,2) # 生成0到1的随机数
array([[ 0.22720579, 0.34879209], [ 0.44804558, 0.60633532]])
random.randn(2,2) # 标准正态分布
array([[-0.52681005, 0.94763894], [-0.0359733 , -0.49147302]])
random.randint(2,6,(3,3)) # 整形
array([[4, 4, 5], [5, 4, 3], [2, 3, 2]])
random.random_sample((3,3))
array([[ 0.85905432, 0.65012434, 0.89731924], [ 0.28359538, 0.11117507, 0.68106958], [ 0.14467215, 0.62230059, 0.60000001]])
random.random_sample(3)
array([ 0.71007475, 0.93676534, 0.56104804])
random.random(3)
array([ 0.6353798 , 0.90959019, 0.13963355])
random.choice(5, 3) # 从5个里面随机选三个 如果a是一个整数 则生成arange数组里面选
array([4, 1, 3])
random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) # p控制每个元素被选择的概率
array([3, 2, 3])
arr = np.arange(10) #洗牌random.shuffle(arr)arr
array([6, 8, 7, 1, 2, 9, 4, 0, 5, 3])
random.permutation(10) #随机排列
array([9, 2, 1, 6, 5, 3, 7, 4, 0, 8])
排序,搜索,计数
data=random.permutation(10);data
array([0, 7, 6, 4, 1, 8, 5, 3, 9, 2])
data=data.reshape(2,5);data
array([[0, 7, 6, 4, 1], [8, 5, 3, 9, 2]])
np.sort(data)
array([[0, 5, 3, 4, 1], [8, 7, 6, 9, 2]])
np.argmax(data,axis=1) # 取不同轴的最大值所在的位置
array([1, 3])
0 0
- numpy常用函数笔记
- Numpy学习笔记4-常用函数
- Numpy 的常用函数[学习笔记]
- Numpy学习笔记——常用函数
- Numpy常用函数
- Numpy:常用函数
- numpy常用函数
- numpy常用函数
- 熟悉 NumPy 常用函数
- 掌握 NumPy 常用函数
- numpy常用函数总结
- numpy中的常用函数
- Numpy常用函数
- numpy 常用函数小计
- pandas numpy常用函数
- NumPy基础--常用函数
- 常用numpy函数
- numpy部分常用函数
- codeforcesPlayrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)B题B. T-shirt buying
- 传统物体检测
- 蓝桥杯
- 加密解密(四)--Java中的Hash算法
- centos6.6下mysql-5.6.21源码安装
- numpy常用函数笔记
- ZooKeeper架构设计及其应用要点
- ORB-SLAM2跟踪之估计初始位姿
- JS事件&DOM初体验
- NSString 大小写切换
- 序列与列表
- js基础篇
- 4.2处理对象
- hdu 1007最近点对问题