返回顶部
首页 > 资讯 > 后端开发 > Python >Python中Numpy库的详细讲解
  • 246
分享到

Python中Numpy库的详细讲解

2023-06-04 11:06:49 246人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python中Numpy库的详细讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先得了解下什么是Numpy,从我的印象中

本篇内容介绍了“python中Numpy库的详细讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

首先得了解下什么是Numpy,从我的印象中,一般提到这个工具都会和机器学习关联起来了。当然和实际的理解又很多的差距。

简单来说,Python本身不是设计为科学计算的语言,但是Python随着使用的普及和大量的扩展,这方面的需求会越来越大,于是有了Numpy来作为补充。

下载Numpy可以使用pip,一个命令即可搞定pip install numpy,大概10多M

Numpy相比Tensorflow的环境搭建要容易多了,校验的方式也很简单,import即可。

>>> import numpy

如果要查看版本可以使用如下的方式。

>>> numpy.version.full_version

'1.13.3'

>>>

当然我们可以指定别名,使用起来更简便一些,我们后续的测试都是这么玩。

>>> import numpy as np

>>> np.version.full_version

'1.13.3'

我们先来热热身。

得到一个范围10以内的整数串,确切的说是数组

>>> a = np.arange(10)

>>> print a

[0 1 2 3 4 5 6 7 8 9]

打印出来看是数组了

>>> type(a)

<type 'numpy.ndarray'>

然后我们变个花样,把这个数组改造成一个2部分,每一部分是5个。

>>> a = a.reshape(2,5)

>>> print a

[[0 1 2 3 4]

[5 6 7 8 9]]

可以继续重构,重构成20个元素,然后分成4部分,每个部分就是5个元素

>>> a = np.arange(20)

>>> a = a.reshape(4,5)

>>> print a

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]]

还可以构造高维的数组,比如下面这样。

>>> a = a.reshape(2,2,5)

>>> print a

[[[ 0 1 2 3 4]

[ 5 6 7 8 9]]

[[10 11 12 13 14]

[15 16 17 18 19]]]

>>>

如果输入(2,2,6)就不可以了,明显的2*2*6=24,已经溢出了。

>>> a = a.reshape(2,2,6)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

ValueError: cannot reshape array of size 20 into shape (2,2,6)

>>>

我们得到数组的维度

>>> a.ndim

3

得到数组各维度的大小

>>> a.shape

(2L, 2L, 5L)

查看数组的元素个数

>>> a.size

20

然后我们创建数组,可以转换列表来得到,

>>> raw = [0,1,2,3,4]

>>> a = np.array(raw)

>>> a

array([0, 1, 2, 3, 4])

>>> print a

[0 1 2 3 4]

换个略微复杂的,也是一样的操作。

>>> raw = [[0,1,2,3,4],[5,6,7,8,9]]

>>> b = np.array(raw)

>>> b

array([[0, 1, 2, 3, 4],

[5, 6, 7, 8, 9]])

>>>

如果要得到显示为0的数组,可以使用这种方式zeros

>>> d = (4,5)

>>> np.zeros(d)

array([[ 0., 0., 0., 0., 0.],

[ 0., 0., 0., 0., 0.],

[ 0., 0., 0., 0., 0.],

[ 0., 0., 0., 0., 0.]])

当然效果不理想都显示了小数点,可以格式化,改成整型

>>> np.ones(d,dtype=int)

array([[1, 1, 1, 1, 1],

[1, 1, 1, 1, 1],

[1, 1, 1, 1, 1],

[1, 1, 1, 1, 1]])

得到随机数,一口气生成5个。

>>> np.random.rand(5)

array([ 0.61643689, 0.15915655, 0.20558268, 0.75157157, 0.50395262])

按照这个思路,随机生成100个也是秒级。

再来看看数组运算

这个部分就逐渐显示出优势了,可以支持计算。

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

>>> print a

[[1 2]

[2 5]]

>>> b = np.array([[2,3],[5,8]])

>>> print a+b

[[ 3 5]

[ 7 13]]

得到一些最大值,最小值。

>>> a = np.arange(20).reshape(4,5)

>>> print a

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]]

>>> print str(a.sum())

190

>>> print str(a.max())

19

>>> print str(a.min())

0

>>> print str(a.max(axis=1))

[ 4 9 14 19]

>>>

可以很容易的变换。

>>> b = np.arange(2,45,3).reshape(5,3)

>>> b = np.mat(b)

>>> print b

[[ 2 5 8]

[11 14 17]

[20 23 26]

[29 32 35]

[38 41 44]]

如果最大的数是2,从0开始,取5个数是这样的写法

>>> np.linspace(0,2,5)

array([ 0. , 0.5, 1. , 1.5, 2. ])

如果是9个数,则是如下的方式。

>>> np.linspace(0,2,9)

array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])

>>>

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

>>> print a[0][1]

2

>>> print a[1][0]

5

>>> print a[1,0]

5

>>> b = a

>>> a[0][1]=100

>>> print a

[[ 3 100]

[ 5 9]]

>>> print b

[[ 3 100]

[ 5 9]]

上面的结果看起来有些奇怪,其实问题的原因是:Python不是真正将a复制一份给b,而是将b指到了a对应数据的内存地址上。

可以使用copy来规避。

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

>>> b = a.copy()

>>> a[0][1] = 100

>>> print a

[[ 3 100]

[ 5 9]]

>>> print b

[[3 2]

[5 9]]

指定列

>>> a = np.arange(20).reshape(4,5)

>>> print a

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]]

>>> print a[:,[1,3]]

[[ 1 3]

[ 6 8]

[11 13]

[16 18]]

按列拼接两个向量成一个矩阵:

>>> a = np.array((1,2,3))

>>> b = np.array((2,3,4))

>>> print np.column_stack((a,b))

[[1 2]

[2 3]

[3 4]]

“Python中Numpy库的详细讲解”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python中Numpy库的详细讲解

本文链接: https://lsjlt.com/news/237579.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python中Numpy库的详细讲解
    本篇内容介绍了“Python中Numpy库的详细讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先得了解下什么是Numpy,从我的印象中...
    99+
    2023-06-04
  • Python Numpy库的超详细教程
    1、Numpy概述 1.1 概念 Python本身含有列表和数组,但对于大数据来说,这些结构是有很多不足的。由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。对于数值运算...
    99+
    2024-04-02
  • python中Path函数讲解【详细】
    文章目录 1、Path函数的基本功能2、常见用法2.1 表示路径2.2 路径的拼接和分解2.3 获取路径 1、Path函数的基本功能 使用pathlib模块来处理文件和文...
    99+
    2023-09-01
    深度学习 图像处理 python
  • Python字典的详细讲解
    本篇内容介绍了“Python字典的详细讲解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、字典概述1. 字典的格式Python字典是一种可...
    99+
    2023-06-16
  • python random模块的详细讲解
    1.random()方法random.random()方法返回的是[0,1)之间的浮点数 >>> import random c = random.random()print c 0.311067669783 ...
    99+
    2023-01-31
    模块 详细 python
  • mysql中my.cnf的详细讲解
    这篇文章主要讲解了“mysql中my.cnf的详细讲解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql中my.cnf的详细讲解”吧!#*** cli...
    99+
    2024-04-02
  • Python中turtle绘图模块的详细讲解
    目录前言turtle基本概念调出模块引用turtle模块(库)方法例、写字函数write()的使用使用Python的turtle(海龟)模块画图步骤总结前言 turtle库是Pyth...
    99+
    2024-04-02
  • C++超详细讲解标准库
    目录一、有趣的重载二、C++ 标准库三、小结一、有趣的重载 操作符 << 的原生意义是按位左移,例:1 <<2; 其意义是将整数 1 按位左移2位,即:000...
    99+
    2024-04-02
  • C++BoostContainer库示例详细讲解
    目录一、关于Boost.Container二、Boost.Container示例一、关于Boost.Container Boost.Container Boost.Container...
    99+
    2022-11-13
    C++ Boost Container C++ Container库
  • python定时任务schedule库用法详细讲解
    目录前言1、按时间间隔执行定时任务2、装饰器:通过 @repeat() 装饰静态方法3、传递参数4、使用装饰器传递参数5、取消定时任务6、在指定时间执行一次任务7、根据标签检索任务8...
    99+
    2023-01-11
    python scheduler python定时任务 python定时任务schedule库
  • Python爬虫超详细讲解
    本篇文章给大家带来了关于Python的相关知识,其中主要整理了爬虫的相关问题,网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序,下面一起来看一下,希望对大家有帮...
    99+
    2022-07-14
    python
  • Python 操作 MongoDB 讲解详细
    目录1、连接MongoDB2、指定(切换)数据库3、指定(切换)集合4、插入数据5、查询数据6、统计查询7、结果排序8、偏移 9、更新数据10、删除数据 1、连接MongoDB 需要...
    99+
    2024-04-02
  • Python模板的使用详细讲解
    目录一 模板语法传值二 过滤器三 标签四 自定义模板标签和过滤器4.1 自定义过滤器4.2 自定义标签函数4.3 自定义inclusion_tag五 模板的继承六 模板的导入一 模板...
    99+
    2024-04-02
  • Java中ThreadPoolExecutor类的详细讲解
    这篇文章主要介绍“Java中ThreadPoolExecutor类的详细讲解”,在日常操作中,相信很多人在Java中ThreadPoolExecutor类的详细讲解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答...
    99+
    2023-06-20
  • MySQL之information_schema数据库详细讲解
    1. 概述 information_schema 数据库跟 performance_schema 一样,都是 MySQL 自带的信息数据库。其中 performance_schema...
    99+
    2024-04-02
  • Python队列Queue超详细讲解
    目录queue模块简介queue.Queue(maxsize=0)queue.LifoQueue(maxsize=0)queue.PriorityQueue(maxsize=0)qu...
    99+
    2023-05-16
    Python队列Queue Python Queue
  • 【OAuth2】详细讲解
    文章目录                         一、Oauth2是什么?                         二、Oauth2的四种角色?                         三、Oauth2的...
    99+
    2023-09-20
    大数据 java spring boot web app
  • springmvc详细讲解
    一、SpringMVC 1.1 引言 java开源框架,Spring Framework的一个独立模块。 MVC框架,在项目中开辟MVC层次架构 对控制器中的功能 包装 简化 扩展践行工厂...
    99+
    2023-10-21
    servlet java spring mvc
  • Python超详细讲解元类的使用
    目录类的定义一、什么是元类二、注意区分元类和继承的基类三、type 元类的使用四、自定义元类的使用类的定义 对象是通过类创建的,如下面的代码: # object 为顶层基类 clas...
    99+
    2024-04-02
  • Python中Numpy的np.array详解
    np.array 用于创建一个新的NumPy数组对象。其语法如下: np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0) object:任何可用于初...
    99+
    2023-10-19
    numpy python 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作