python中NumPy的安装与基本操作
作者:沉睡中的主角 发布时间:2023-08-27 03:03:53
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
来源:https://blog.csdn.net/ggj0727/article/details/116484987


猜你喜欢
- 迭代器(Iterable):能直接作用于for循环的对象,统称可迭代对象。例如:list、tuple、set、str、generator都是
- 最近,某水果手机厂在万众期待中开了一场没有发布万众期待的手机产品的发布会,发布了除手机外的其他一些产品,也包括最新的水果14系统。几天后,更
- 如下所示:>>> import numpy as np>>> a = np.arange(12).res
- 代码如下:Function htmll(mulu,htmlmulu,FileName,filefrom,htmla,htmlb,h
- 近期在使用bootstrap这个优秀的前端框架,这个框架非常强大,框架里面有下
- 安装包网盘下载链接:链接: https://pan.baidu.com/s/1TLLeCnNkHtuTiAxHBl39hg 提取码: 9yg
- 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的 * ,从而保证爬虫快
- 1 什么是 NumpyNumPy,是 Numerical Python 的简称,用于高性能科学计算和数据分析的基础包,像数学科学工具(pan
- <html><head><script type="text/javascript" sr
- MySQL、Sphinx及许多数据库和搜索引擎中的查询是单线程的。比如说,在一台32个CPU核心、16个磁盘的R910服务器上执
- 本文实例讲述了python实现中文分词FMM算法。分享给大家供大家参考。具体分析如下:FMM算法的最简单思想是使用贪心算法向前找n个,如果这
- 在前面已经学习了gin框架如何处理请求,解析请求,返回数据。在实际的项目当中,项目往往是以模块化来进行划分和开发的,所谓的模块化就是按照功能
- 在用到编辑器时,就会碰到一点,那就是标签的闭合问题,这个问题非常严峻,因为这可能会导致网页显示的整体样式受到破坏。这最近在PJ的functi
- 枚举是常用的功能,看看Python的枚举.from enum import EnumMonth = Enum('Month'
- 许多游戏玩家一定会对游戏中的动态鼠标指针有很深的印象,其实只要一句简单的CSS(层叠样式表),你也能在网页上实现这种效果。首先,你需要一个鼠
- 正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的
- 最近央视新闻记者王冰冰以清除可爱和专业的新闻业务水平深受众多网友喜爱,b站也有很多up主剪辑了关于王冰冰的视频。我们都是知道b站是一个弹幕网
- 记得在网上Down的很多源码用的最多的一种方式就是:var ie = document.all();这是因为IE浏览器的document下有
- 很多时候基于php+MySQL建立的网站所出现的系统性能瓶颈往往是出在MySQL上,而MySQL中用的最多的语句就是查询语句,因此,针对My
- views.py中的修改增加相应的请求处理函数:def getdevjson(request): print 'get here