python中NumPy的安装与基本操作

 更新时间:2022年03月01日 10:08:34   作者:沉睡中的主角  
Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组,也没有各种运算函数,因而不适合数值运算,NumPy的出现弥补了这些不足,这篇文章主要给大家介绍了关于python中NumPy的安装与基本操作的相关资料,需要的朋友可以参考下

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基本操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python数据清洗之表格字段智能去重

    Python数据清洗之表格字段智能去重

    数据清洗是数据分析和处理过程中一个至关重要的步骤,其中字段去重更是一个常见且关键的任务,下面我们看看如何利用Python进行表格字段智能去重吧
    2025-03-03
  • Python图像处理之对比两张图片的差异示例

    Python图像处理之对比两张图片的差异示例

    这篇文章主要给大家介绍了关于Python图像处理之对比两张图片的差异,Python提供了一些库和工具可以用于图片的相似度比对,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • python flappy bird小游戏分步实现流程

    python flappy bird小游戏分步实现流程

    哈喽,哈喽~今天小编又来分享小游戏了——flappy bird(飞扬的小鸟),这个游戏非常的经典,游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍
    2022-02-02
  • Python中使用装饰器时需要注意的一些问题

    Python中使用装饰器时需要注意的一些问题

    这篇文章主要介绍了Python中使用装饰器时需要注意的一些问题,装饰器是Python学习进阶中的重要知识点,需要的朋友可以参考下
    2015-05-05
  • 使用Python实现XLS和XLSX之间的相互转换

    使用Python实现XLS和XLSX之间的相互转换

    在日常工作中,我们经常需要处理和转换不同格式的Excel文件,以适应不同的需求和软件兼容性,Excel文件的两种常见格式是XLS(Excel 97-2003)和XLSX(Excel 2007及以上版本),本文将详细介绍如何使用Python在XLS和XLSX格式之间进行转换,需要的朋友可以参考下
    2024-09-09
  • 关于Pandas缺失值inf与nan的处理实践

    关于Pandas缺失值inf与nan的处理实践

    这篇文章主要介绍了关于Pandas缺失值inf与nan的处理实践,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python数据类型详解(三)元祖:tuple

    Python数据类型详解(三)元祖:tuple

    本文给大家介绍的是Python数据类型中的元祖(tuple),简单的说Tuple,与列表一样,元素也是不可变的,但与列表不同,在一个元祖可以包含不同类型的元素
    2016-05-05
  • python禁用键鼠与提权代码实例

    python禁用键鼠与提权代码实例

    这篇文章主要介绍了python禁用键鼠与提权代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Django 浅谈根据配置生成SQL语句的问题

    Django 浅谈根据配置生成SQL语句的问题

    今天小编就为大家分享一篇Django 浅谈根据配置生成SQL语句的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 零基础写python爬虫之抓取百度贴吧代码分享

    零基础写python爬虫之抓取百度贴吧代码分享

    前面几篇都是以介绍基础知识为主,各位童鞋估计都在犯嘀咕了,你到底写不写爬虫啊??额,好吧,本文就给大家写一个简单的百度贴吧的python爬虫代码。
    2014-11-11

最新评论