文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python中NumPy的安装与基本操作

2024-04-02 19:55

关注

Numpy是什么

很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。 

NumPy是一个高性能的科学计算和数据分析基础包。

NumPy的安装

NumPy的安装相对简单,我们可以通过Anaconda中的命令进行安装,也可以通过“pip install numpy" 语句对NumPy进行安装。如果需要验证NumPy是否安装成功,则可以在NumPy安装完成后通过输入“import numpy"后运行,看看是否输出报错提示。

多维数组

创建多维数组

import numpy as np
 
#用array来创建
a=np.array([1,2,3])  #创建一维数组
print(a)
 
b=np.array([[1,2,3],[4,5,6]])  #创建高维数组
print(b)
 
#使用NumPy中的ones创建维度指定且元素全是1的数组
c=np.ones([2,3])   #全是1的数组
 
print(c)
 
c[1,2]=3 #对数组中的元素进行覆盖
 
print(c)
 
#创建维度制定且元素全为0的数组
d=np.zeros([2,3])
 
print(d)
 
#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)

多维数组的常用属性

ndim:返回统计的数组维数,即维度的数量

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)
 
print(e.ndim)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
2

shape:返回数组的维度值,对返回的结果使用一个数据类型为整型的元组来表示,比如一个二维数组返回的结果为(n,m),那么n和m表示数组中对应维度的数据的长度。如果使用shape输出的是矩阵的维度,那么在输出的(n,m) 中,n表示矩阵的行,m表示矩阵的列。

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)
 
print(e.shape)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
(2, 3)

size:返回要统计的数组中的元素的总数量

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)
 
print(e.size)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
6

dtype:返回数组中的元素的数据类型。不过其显示的数据类型和我们之前定义的变量的数据类型名有所区别,因为这些数据类型都是使用NumPy 进行定义的,而在NumPy中表示数据类型使用的是numpy.int32、numpy.int16和numpy.float64这类格式的名字

#创建维度指定且元素全为随机数的数组
e=np.empty([2,3])
print(e)
 
print(e.dtype)

结果:

[[0. 0. 0.]
 [0. 0. 0.]]
float64

多维数组的基本操作

数组的算术运算

数组能够直接进行加法、减法、乘法和除法算术运算

import numpy as np
g=np.array([1,2,3])
h=np.array([4,5,6])
print("a-b-",a-b) #打印a-b的结果
print("a+b =",a+b) #打印a+b的结果
print("a/b =",a/b) #打印a/b的结果
print("a*b =",a*b) #打印a*b的结果

结果:

a-b- [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4  0.5 ]
a*b = [ 4 10 18]
 
Process finished with exit code 0

从上面的实例可以看出,虽然数组在构造上类似于矩阵,但是其运算和之前介绍的矩阵运算存在诸多不同:首先,矩阵是不存在除法运算的,但是数组能够进行除法运算:其次,数组的乘法运算机制是通过将位置对应的元素相乘来完成的,和矩阵的乘法运算机制不同。下面来看看如何通过数组实现矩阵乘法运算。

a=np.array([1,2,3])
b=np.array([4,5,6])
print("a-b-",a-b) #打印a-b的结果
print("a+b =",a+b) #打印a+b的结果
print("a/b =",a/b) #打印a/b的结果
print("a*b =",a*b) #打印a*b的结果
 
c = a.dot(b)
 
print("Matrix1: a*b =",c)  #打印a*b的结果
 
d = np.dot(a,b)
 
print("Matrix2: a*b",c)  #打印a*b的结果在运行后,输出的内容

结果:

a-b= [-3 -3 -3]
a+b = [5 7 9]
a/b = [0.25 0.4  0.5 ]
a*b = [ 4 10 18]
Matrix1: a*b = 32
Matrix2: a*b 32
 
Process finished with exit code 0

在以上代码中使用了两种方法来实现矩阵的乘法运算,其计算结果是一样的。数组和矩阵的算术运算还有一个较大的不同点,就是数组可以直接和标量进行算术运算,但是在矩阵运算中是不可以的。

a = np.array([1,2,3])
 
print ("a * 2 =",a*2)
print("a 1 2 =",a/2)
print("a - 2 =",a-2)
print("a + 2 =",a+2)

结果:

a * 2 = [2 4 6]
a 1 2 = [0.5 1.  1.5]
a - 2 = [-1  0  1]
a + 2 = [3 4 5]

数组的自身运算

(1)min:默认找出数组的所有元素中值最小的元素,可以通过设置axis的值来按行或者列查找元素中的最小值。

(2) max:默认找出数组的所有元素中值最大的元素,可以通过设置axis的值来按行或者列查找元素中的最大值。

(3) sum:默认对数组中的所有元素进行求和运算,并返回运算结果,同样可以通过设置axis的值来按行或者列对元素进行求和运算。

(4) exp:对数组中的所有元素进行指数运算。

(5) sqrt: 对数组中的所有元素进行平方根运算。

(6) square:对数组中的所有元素进行平方运算。

随机数组

生成随机数在我们平时的应用中是很有用的,在NumPy中有许多方法可以生成不同属性的随机数,以满足在计算中使用随机数字的需求。

(1) seed: 随机因子,在随机数生成器的随机因子被确定后,无论我们运行多少次随机程序,最后生成的数字都是一样的,随机因子更像把随机的过程变成一种 伪随机的机制,不过这有利于结果的复现。

(2) rand: 生成一个在[0,1)范围内满足均匀分布的随机样本数。

(3) randn:生成一个满足平均值为0且方差为1的正太分布随机样本数。

(4)randint:在给定的范围内生成类型为整数的随机样本数。

(5) binomial: 生成-个维度指定且满足二项分布的随机样本数。

(6) beta:生成一个指定维度且满足beta分布的随机样本数。

(7) normal: 生成一个指定维度且满足高斯正太分布的随机样本数。

索引、切片、迭代

在数组中也有索引、切片和迭代,其操作过程和列表类似,不过多维数组相较于一维数组,在索引、切片和迭代等操作上会更复杂。

a = np.arange(10)
 
print(a) #输出整个数组
print(a[:5]) #输出数组的前 五个元素
for i in a:    #迭代输出数组的全部元素 
    print (i)

结果:

[0 1 2 3 4 5 6 7 8 9]
[0 1 2 3 4]
0
1
2
3
4
5
6
7
8
9
 
Process finished with exit code 0

总结

到此这篇关于python中NumPy安装与基本操作的文章就介绍到这了,更多相关python中NumPy基本操作内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯