【python学习笔记】15:numpy创建各种数组
2017-07-20 12:23
621 查看
前段时间买了董老师的数据分析与科学计算可视化课程,假期抽时间学习一下。
用于数据分析与科学计算可视化的模块有很多:如statistics提供了一些常用的统计分析的函数,numpy科学计算包作数值计算扩展库(将python当成matlab来用),scipy作为numpy的拓展,pandas提供了高效地操作大型数据集所需的工具,matplotlib做数据可视化。这门课主要也是用这几个包。
numpy的简单用法
*生成数组
>>> import numpy as np
>>> np.array([1,2,3,4,5])
array([1, 2, 3, 4, 5])
>>> np.array([[1,2,3],[4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
>>> np.arange(8)
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.arange(1,10,2)
array([1, 3, 5, 7, 9])arange类似内置函数range的用法,最多可传入三个参数,最少一个参数,左闭右开区间。
*特殊的数组
logspace生成等比数组,三个参数分别是起始指、终止值、要生成的数的数量,然后取10的这些数次幂。如果指定了base=多少,就取指定数的这些数次幂。
zeros返回全0数组,ones返回全1数组,传入的参数为数组中数字的数目。
>>> np.zeros((3,3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.ones((3,3,3))
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.],
[ 1., 1., 1.]]])如果zeros和ones传入的是个元组,那么可以生成多维数组。
>>> np.identity(3) #单位矩阵
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> np.empty((3,3)) #空数组
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])identity生成单位矩阵,empty生成空数组,空数组只申请空间而不初始化,里面的元素值是不确定的。
>>> np.diag([1,2,3]) #对角矩阵
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])diag生成参数列表排在主对角元上产生的对角矩阵。
用于数据分析与科学计算可视化的模块有很多:如statistics提供了一些常用的统计分析的函数,numpy科学计算包作数值计算扩展库(将python当成matlab来用),scipy作为numpy的拓展,pandas提供了高效地操作大型数据集所需的工具,matplotlib做数据可视化。这门课主要也是用这几个包。
numpy的简单用法
*生成数组
>>> import numpy as np
>>> np.array([1,2,3,4,5])
array([1, 2, 3, 4, 5])
>>> np.array([[1,2,3],[4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
>>> np.arange(8)
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.arange(1,10,2)
array([1, 3, 5, 7, 9])arange类似内置函数range的用法,最多可传入三个参数,最少一个参数,左闭右开区间。
*特殊的数组
>>> np.linspace(0,10,11) array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) >>> np.linspace(0,10,11) #等差数组 array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) >>> np.linspace(0,1,11) array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ]) >>> np.logspace(0,100,10) #等比数组 array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100]) >>> np.logspace(1,5,5,base=2) array([ 2., 4., 8., 16., 32.]) >>> np.logspace(0,100,10,base=10) array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100]) >>> np.zeros(3) array([ 0., 0., 0.]) >>> np.ones(3) array([ 1., 1., 1.])linspace生成等差数组,三个参数分别是起始指、终止值、要生成的数的数量,公差会被自动计算。
logspace生成等比数组,三个参数分别是起始指、终止值、要生成的数的数量,然后取10的这些数次幂。如果指定了base=多少,就取指定数的这些数次幂。
zeros返回全0数组,ones返回全1数组,传入的参数为数组中数字的数目。
>>> np.zeros((3,3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.ones((3,3,3))
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.],
[ 1., 1., 1.]]])如果zeros和ones传入的是个元组,那么可以生成多维数组。
>>> np.identity(3) #单位矩阵
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> np.empty((3,3)) #空数组
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])identity生成单位矩阵,empty生成空数组,空数组只申请空间而不初始化,里面的元素值是不确定的。
>>> np.hamming(20) #海明数组 array([ 0.08 , 0.10492407, 0.17699537, 0.28840385, 0.42707668, 0.5779865 , 0.7247799 , 0.85154952, 0.94455793, 0.9937262 , 0.9937262 , 0.94455793, 0.85154952, 0.7247799 , 0.5779865 , 0.42707668, 0.28840385, 0.17699537, 0.10492407, 0.08 ]) >>> np.blackman(10) #黑人数组 array([ -1.38777878e-17, 5.08696327e-02, 2.58000502e-01, 6.30000000e-01, 9.51129866e-01, 9.51129866e-01, 6.30000000e-01, 2.58000502e-01, 5.08696327e-02, -1.38777878e-17]) >>> np.kaiser(12,5) #Kaiser window array([ 0.03671089, 0.16199525, 0.36683806, 0.61609304, 0.84458838, 0.98167828, 0.98167828, 0.84458838, 0.61609304, 0.36683806, 0.16199525, 0.03671089])
>>> np.random.randint(0,50,5) #从0到50的随机数取5个作数组 array([41, 11, 14, 36, 32]) >>> np.random.rand(10) #生成10个从0~1的随机浮点数 array([ 0.22603614, 0.29480329, 0.41594871, 0.62596426, 0.21839477, 0.46882746, 0.72690902, 0.26935643, 0.31786067, 0.24229116]) >>> np.random.standard_normal(5) #从标准正态分布中随机采样 array([ 1.92352533, 1.26617687, 2.174852 , 0.24888205, -0.14012354])random.randint生成随机整数数组,random.rand生成0~1间的随机浮点数数组。
>>> np.diag([1,2,3]) #对角矩阵
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])diag生成参数列表排在主对角元上产生的对角矩阵。
相关文章推荐
- 学习Python数据分析随手笔记【一】numpy数组的函数简单应用
- 学习Python数据分析随手笔记【二】numpy数组的属性
- Python.Numpy学习零碎笔记之数组与矩阵
- 【python学习笔记】19:numpy数组布尔运算和切片
- Python.Numpy学习零碎笔记之矩阵创建
- python 学习笔记(1)--numpy数组转置
- 【python学习笔记】17:numpy数组排序
- 【python学习笔记】18:numpy数组函数与矩阵运算
- python numpy操作数组学习笔记(二)数组的分割和组合
- 【python学习笔记】16:numpy数组四则运算
- 【小白笔记】PHP学习之路 (15) --数组(5)
- 【学习笔记】Python+NumPy
- python基础教程_学习笔记15:标准库:一些最爱——fileinput
- javascript学习笔记:关于创建数组的疑问
- Python学习笔记:05 数组的基本用法(Tuple和List)
- Python学习笔记(二)——NumPy
- Python学习笔记15:标准库之获取进程信息(os包)
- 【js学习笔记039】-- 创建数组
- C#学习笔记—数组的创建
- python学习笔记一创建文件makeTextfile.py读取显示readTextFile.py