Numpy的简单用法小结


Posted in Python onAugust 28, 2019

Numpy的简单用法,下面就一起来了解一下

import numpy as np

一、创建ndarray对象

列表转换成ndarray:

>>> a = [1,2,3,4,5]
>>> np.array(a)
array([1, 2, 3, 4, 5])

取随机浮点数

>>> np.random.rand(3, 4)
array([[ 0.16215336, 0.49847764, 0.36217369, 0.6678112 ],
    [ 0.66729648, 0.86538771, 0.32621889, 0.07709784],
    [ 0.05460976, 0.3446629 , 0.35589223, 0.3716221 ]])

取随机整数

>>> np.random.randint(1, 5, size=(3,4))
array([[2, 3, 1, 2],
    [3, 4, 4, 4],
    [4, 4, 4, 3]])

取零

>>> np.zeros((3,4))
array([[ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.],
    [ 0., 0., 0., 0.]])

取一

>>> np.ones((3,4))
array([[ 1., 1., 1., 1.],
    [ 1., 1., 1., 1.],
    [ 1., 1., 1., 1.]])

取空(最好别用,了解一下,版本不同返回值不一样)

>>> np.empty((3,4))
array([[ 1., 1., 1., 1.],
    [ 1., 1., 1., 1.],
    [ 1., 1., 1., 1.]])

取整数零或一

>>> np.ones((3,4),int)
array([[1, 1, 1, 1],
    [1, 1, 1, 1],
    [1, 1, 1, 1]])

>>> np.zeros((3,4),int)
array([[0, 0, 0, 0],
    [0, 0, 0, 0],
    [0, 0, 0, 0]])

仿range命令创建ndarray:

>>> np.arange(2,10,2) # 开始,结束,步长
array([2, 4, 6, 8])

二、ndarray属性的查看和操作:

看ndarray属性:

>>> a = [[1,2,3,4,5],[6,7,8,9,0]]
>>> b = np.array(a)
>>> b.ndim #维度个数(看几维)
2
>>> b.shape #维度大小(看具体长宽)
(5,2)
>>>b.dtype
dtype('int32')

ndarray创建时指定属性:

>>> np.array([1,2,3,4,5],dtype=np.float64)
array([ 1., 2., 3., 4., 5.])

>>> np.zeros((2,5),dtype=np.int32)
array([[0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0]])

属性强转:

>>> a = np.array([1,2,3,4,5],dtype=np.float64)
>>> a
array([ 1., 2., 3., 4., 5.])

>>> a.astype(np.int32)
 array([1, 2, 3, 4, 5])

三、简单操作:

批量运算:

>>> a = np.array([1,2,3,4,5],dtype=np.int32)
>>> a
array([1, 2, 3, 4, 5])

>>> a + a
array([ 2, 4, 6, 8, 10])

>>> a * a
array([ 1, 4, 9, 16, 25])

>>> a - 2
array([-1, 0, 1, 2, 3])

>>> a / 2
array([ 0.5, 1. , 1.5, 2. , 2.5])

#等等

改变维度:

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,0]],dtype=np.int32)
>>> a
array([[1, 2, 3, 4, 5],
    [6, 7, 8, 9, 0]])

>>> a.reshape((5,2))
array([[1, 2],
    [3, 4],
    [5, 6],
    [7, 8],
    [9, 0]])

矩阵转换(和改变维度有本质区别,仔细):

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,0]],dtype=np.int32)
>>> a
array([[1, 2, 3, 4, 5],
    [6, 7, 8, 9, 0]])

>>> a.transpose()
array([[1, 6],
    [2, 7],
    [3, 8],
    [4, 9],
    [5, 0]])

打乱(只能打乱一维):

>>> a = np.array([[1,2],[3,4],[5,6],[7,8],[9,0]],dtype=np.int32)
>>> a
array([[1, 2],
    [3, 4],
    [5, 6],
    [7, 8],
    [9, 0]])
    
>>> np.random.shuffle(a)
>>> a
array([[9, 0],
    [1, 2],
    [7, 8],
    [5, 6],
    [3, 4]])

四、切片和索引:

一维数组(和普通列表一样):

>>> a = np.array(range(10))
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> a[3]
3

>>> a[2:9:2]
array([2, 4, 6, 8])

多维数组(也差不了多少):

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,0],[11,12,13,14,15]],dtype=np.int32)

>>> a
array([[ 1, 2, 3, 4, 5],
    [ 6, 7, 8, 9, 0],
    [11, 12, 13, 14, 15]])
   

>>> a[:, 1:4]
array([[ 2, 3, 4],
    [ 7, 8, 9],
    [12, 13, 14]])

条件索引:

>>> a = np.array([[1,2,3,4,5],[6,7,8,9,0],[11,12,13,14,15]],dtype=np.int32)

>>> a
array([[ 1, 2, 3, 4, 5],
    [ 6, 7, 8, 9, 0],
    [11, 12, 13, 14, 15]])
   

>>> a > 5
array([[False, False, False, False, False],
    [ True, True, True, True, False],
    [ True, True, True, True, True]], dtype=bool)

>>> a[a>5]
array([ 6, 7, 8, 9, 11, 12, 13, 14, 15])

>>> a%3 == 0
Out[128]: 
array([[False, False, True, False, False],
    [ True, False, False, True, True],
    [False, True, False, False, True]], dtype=bool)

>>> a[a%3 == 0]
array([ 3, 6, 9, 0, 12, 15])

五、函数(numpy核心知识点)

计算函数(都不想举例了,太简单。。):

np.ceil(): 向上最接近的整数,参数是 number 或 array
np.floor(): 向下最接近的整数,参数是 number 或 array
np.rint(): 四舍五入,参数是 number 或 array
np.isnan(): 判断元素是否为 NaN(Not a Number),参数是 number 或 array
np.multiply(): 元素相乘,参数是 number 或 array
np.divide(): 元素相除,参数是 number 或 array
np.abs():元素的绝对值,参数是 number 或 array
np.where(condition, x, y): 三元运算符,x if condition else y
>>> a = np.random.randn(3,4)
>>> a
array([[ 0.37091654, 0.53809133, -0.99434523, -1.21496837],
    [ 0.00701986, 1.65776152, 0.41319601, 0.41356973],
    [-0.32922342, 1.07773886, -0.27273258, 0.29474435]])

>>> np.ceil(a)   
array([[ 1., 1., -0., -1.],
    [ 1., 2., 1., 1.],
    [-0., 2., -0., 1.]])


>>> np.where(a>0, 10, 0)
array([[10, 10, 0, 0],
    [10, 10, 10, 10],
    [ 0, 10, 0, 10]])

统计函数

np.mean():所有元素的平均值
np.sum():所有元素的和,参数是 number 或 array
np.max():所有元素的最大值
np.min():所有元素的最小值,参数是 number 或 array
np.std():所有元素的标准差
np.var():所有元素的方差,参数是 number 或 array
np.argmax():最大值的下标索引值,
np.argmin():最小值的下标索引值,参数是 number 或 array
np.cumsum():返回一个一维数组,每个元素都是之前所有元素的累加和
np.cumprod():返回一个一维数组,每个元素都是之前所有元素的累乘积,参数是 number 或 array
>>> a = np.arange(12).reshape(3,4).transpose()
>>> a
array([[ 0, 4, 8],
    [ 1, 5, 9],
    [ 2, 6, 10],
    [ 3, 7, 11]])

>>> np.mean(a)
5.5

>>> np.sum(a)
66

>>> np.argmax(a)
11

>>> np.std(a)
3.4520525295346629

>>> np.cumsum(a)
array([ 0, 4, 12, 13, 18, 27, 29, 35, 45, 48, 55, 66], dtype=int32)

判断函数:

np.any(): 至少有一个元素满足指定条件,返回True
np.all(): 所有的元素满足指定条件,返回True
>>> a = np.random.randn(2,3)
>>> a
array([[-0.65750548, 2.24801371, -0.26593284],
    [ 0.31447911, -1.0215645 , -0.4984958 ]])

>>> np.any(a>0)
True

>>> np.all(a>0)
False

去除重复:

np.unique(): 去重
>>> a = np.array([[1,2,3],[2,3,4]])
>>> a
array([[1, 2, 3],
    [2, 3, 4]])

>>> np.unique(a)
array([1, 2, 3, 4])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python 私有函数的实例详解
Sep 11 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python 用matplotlib画以时间日期为x轴的图像
Aug 06 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
Python 单例设计模式用法实例分析
Sep 23 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
Python小整数对象池和字符串intern实例解析
Mar 21 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 #Python
Python 转换文本编码实现解析
Aug 27 #Python
python-opencv获取二值图像轮廓及中心点坐标的代码
Aug 27 #Python
python定位xpath 节点位置的方法
Aug 27 #Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 #Python
python自动化UI工具发送QQ消息的实例
Aug 27 #Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 #Python
You might like
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
PHP面向对象法则
2012/02/23 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
tagName的使用,留一笔
2006/06/26 Javascript
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
nodejs实现大文件(在线视频)的读取
2020/10/16 NodeJs
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
vue.js高德地图实现热点图代码实例
2019/04/18 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
最简单的vue消息提示全局组件的方法
2019/06/16 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
python实现数字炸弹游戏程序
2020/07/17 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
付款委托书范本
2014/04/04 职场文书
党员群众路线承诺书
2014/05/20 职场文书
十八大演讲稿
2014/05/22 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
2015年招聘工作总结
2014/12/12 职场文书
Python中tqdm的使用和例子
2022/09/23 Python