侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Python编程深度学习计算库之numpy

Python  /  管理员 发布于 7年前   221

NumPy是python下的计算库,被非常广泛地应用,尤其是近来的深度学习的推广。在这篇文章中,将会介绍使用numpy进行一些最为基础的计算。

NumPy vs SciPy

NumPy和SciPy都可以进行运算,主要区别如下

最近比较热门的深度学习,比如在神经网络的算法,多维数组的使用是一个极为重要的场景。如果你熟悉tensorflow中的tensor的概念,你会非常清晰numpy的作用。所以熟悉Numpy可以说是使用python进行深度学习入门的一个基础知识。

安装

liumiaocn:tmp liumiao$ pip install numpyCollecting numpy Downloading https://files.pythonhosted.org/packages/b6/5e/4b2c794fb57a42e285d6e0fae0e9163773c5a6a6a7e1794967fc5d2168f2/numpy-1.14.5-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl (4.7MB)  100% || 4.7MB 284kB/s Installing collected packages: numpySuccessfully installed numpy-1.14.5liumiaocn:tmp liumiao$

确认

liumiaocn:tmp liumiao$ pip show numpyName: numpyVersion: 1.14.5Summary: NumPy: array processing for numbers, strings, records, and objects.Home-page: http://www.numpy.orgAuthor: Travis E. Oliphant et al.Author-email: NoneLicense: BSDLocation: /usr/local/lib/python2.7/site-packagesRequires: Required-by: liumiaocn:tmp liumiao$

使用

使用numpy的数组

使用如下例子简单来理解一下numpy的数组的使用:

liumiaocn:tmp liumiao$ cat np-1.py #!/usr/local/bin/pythonimport numpy as nparr = [1,2,3,4]print("array arr: ", arr)np_arr = np.array(arr)print("numpy array: ", np_arr)print("doulbe calc : ", 2 * np_arr)print("ndim: ", np_arr.ndim)liumiaocn:tmp liumiao$ python np-1.py ('array arr: ', [1, 2, 3, 4])('numpy array: ', array([1, 2, 3, 4]))('doulbe calc : ', array([2, 4, 6, 8]))('ndim: ', 1)liumiaocn:tmp liumiao$

多维数组&ndim/shape

ndim在numpy中指的是数组的维度,如果是2维值则为2,在下面的例子中构造一个步进为2的等差数列,然后将其进行维度的转换同时输出数组的ndim和shape的值以辅助对于ndim和shape含义的理解。

liumiaocn:tmp liumiao$ cat np-2.py #!/usr/local/bin/pythonimport numpy as nparithmetic = np.arange(0,16,2)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)#resize to 2*4 2-dim arrayarithmetic.resize(2,4)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)#resize to 2*2*2 3-dim arrayarray = arithmetic.resize(2,2,2)print(arithmetic)print("ndim: ",arithmetic.ndim," shape:", arithmetic.shape)liumiaocn:tmp liumiao$ python np-2.py [ 0 2 4 6 8 10 12 14]('ndim: ', 1, ' shape:', (8,))[[ 0 2 4 6] [ 8 10 12 14]]('ndim: ', 2, ' shape:', (2, 4))[[[ 0 2] [ 4 6]] [[ 8 10] [12 14]]]('ndim: ', 3, ' shape:', (2, 2, 2))liumiaocn:tmp liumiao$ 

另外也可以使用reshape进行维度的调整。

等差数列&等比数列

numpy和matlab写起来有很多函数基本一样,比如等比数列和等差数列可以使用linspace和logspace进行。

logspace缺省的时候指的是以10给底,但是可以通过指定base进行设定

liumiaocn:tmp liumiao$ cat np-3.py #!/usr/local/bin/pythonimport numpy as npprint("np.linspace(1,4,4):", np.linspace(1,4,4))print("np.logspace(1,4,4):", np.logspace(1,4,4))print("np.logspace(1,4,4,base=2):",np.logspace(1,4,4,base=2))liumiaocn:tmp liumiao$ python np-3.py ('np.linspace(1,4,4):', array([1., 2., 3., 4.]))('np.logspace(1,4,4):', array([  10.,  100., 1000., 10000.]))('np.logspace(1,4,4,base=2):', array([ 2., 4., 8., 16.]))liumiaocn:tmp liumiao$

数组初始化

numpy提供了很方便的初始化的函数,比如

liumiaocn:tmp liumiao$ cat np-4.py #!/usr/local/bin/pythonimport numpy as npprint("np.zeros(6):",np.zeros(6))print("np.zeros((2,3)):",np.zeros((2,3)))print("np.ones(6):",np.ones(6))print("np.ones((2,3)):",np.ones((2,3)))print("np.random.random(6):",np.random.random(6))print("np.random.random(6):",np.random.random(6))print("np.random.random((2,3)):",np.random.random((2,3)))print("np.random.seed(1234)")np.random.seed(1234)print("np.random.random(6):",np.random.random(6))print("np.random.seed(1234)")np.random.seed(1234)print("np.random.random(6):",np.random.random(6))liumiaocn:tmp liumiao$ python np-4.py ('np.zeros(6):', array([0., 0., 0., 0., 0., 0.]))('np.zeros((2,3)):', array([[0., 0., 0.],    [0., 0., 0.]]))('np.ones(6):', array([1., 1., 1., 1., 1., 1.]))('np.ones((2,3)):', array([[1., 1., 1.],    [1., 1., 1.]]))('np.random.random(6):', array([0.06909968, 0.27468844, 0.59127996, 0.56973602, 0.45985047,    0.95384945]))('np.random.random(6):', array([0.62996648, 0.2824114 , 0.2698051 , 0.09262053, 0.50862503,    0.96600255]))('np.random.random((2,3)):', array([[0.66880129, 0.8834006 , 0.49458989],    [0.28335563, 0.65711274, 0.76726504]]))np.random.seed(1234)('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,    0.27259261]))np.random.seed(1234)('np.random.random(6):', array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581,    0.27259261]))liumiaocn:tmp liumiao$

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家的支持。如果你想了解更多相关内容请查看下面相关链接


  • 上一条:
    对python中大文件的导入与导出方法详解
    下一条:
    python将txt文档每行内容循环插入数据库的方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客