千家信息网

Python中Numpy库的详细讲解

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"Python中Numpy库的详细讲解"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首
千家信息网最后更新 2026年10月31日Python中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)

然后我们变个花样,把这个数组改造成一个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 "", line 1, in

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库的详细讲解"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数组 方式 部分 个数 元素 最大 内容 实际 更多 知识 维度 面的 学习 生成 复杂 最小 简便 学有所成 接下来 一口气 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融科技 哈尔滨大商圈互联网科技有限公司 互联网科技工作委员会主任 科技互联网公司装修 朗新科技与工业互联网 猪兼强互联网科技 迪茉互联网科技 天津摩尔互联网科技 齐家互联网科技有限公司 互联网科技英文翻译 湖南诚度互联网科技有限公司 互联网科技公司实习生 语蝶互联网科技有限公司 华夏互联网科技业 中国互联网公司排名锤子科技 企晟互联网信息科技有限公司 宇信科技在杭州互联网排第几 上海同邻互联网科技有限公司规模 互联网科技企业商标注意事项 广州全民伙伴互联网科技有限公司 上海睿民互联网科技有限公司 合肥互联网科技公司 天津摩尔互联网科技 互联网科技汛 丰台科技园 互联网公司 互联网科技素材视频竖屏 山东吉时兔互联网科技有限公司 九思连强互联网电子科技有限公司 互联网高科技行业有哪些企业 颐高云石互联网科技
0