NumPy入门介绍
创始人
2024-06-02 23:01:48
0

NumPy是Python语言的一个扩展库,是Numeric Python的缩写,是一个用于科学计算的开源软件包。它提供了高效的多维数组对象,以及针对这些数组执行快速操作的工具。NumPy的核心功能是numpy.ndarray,即一种能够表示任意维度的数组对象。这篇文章将介绍NumPy的基础知识以及一些常用操作。

安装NumPy

在使用NumPy之前,需要先安装它。可以使用pip或conda来安装NumPy。在命令行中输入以下命令可以安装NumPy:

使用pip:

pip install numpy

使用conda:

conda install numpy

导入NumPy

安装完NumPy之后,需要在Python代码中导入NumPy才能使用它的功能。可以使用以下代码导入NumPy:

import numpy as np

以上代码将NumPy库导入并将其命名为np。在接下来的代码中,可以使用np来访问NumPy的函数和对象。

创建NumPy数组

NumPy中的核心对象是数组,也称为ndarray。可以使用以下代码创建一个简单的一维NumPy数组

import numpy as npa = np.array([1, 2, 3])
print(a)

输出结果:

[1 2 3]

可以通过调用数组的shape属性来查看其形状:

print(a.shape)

输出结果:

(3,)

在上面的代码中,np.array()函数将Python列表转换为NumPy数组。

创建多维数组

除了一维数组,NumPy还可以创建多维数组,也称为ndarray。以下是一个创建二维数组的示例:

import numpy as npb = np.array([[1, 2, 3], [4, 5, 6]])
print(b)

输出结果:

[[1 2 3][4 5 6]]

可以使用b.shape属性查看数组的形状

print(b.shape)

输出结果:

(2, 3)

NumPy数组的基本操作

NumPy提供了许多对数组进行操作的函数和方法。以下是一些基本操作的示例:

访问数组元素

可以通过下标访问数组中的元素。例如,以下代码将访问数组a中的第二个元素:

import numpy as npa = np.array([1, 2, 3])
print(a[1])

输出结果:

2

对于多维数组,可以使用逗号分隔的下标访问元素。例如,以下代码将访问数组b中的第二行第三列元素:

import numpy as npb = np.array([[1, 2, 3], [4, 5, 6]])
print(b[1, 2])

输出结果

6
切片数组

可以使用切片操作来访问数组的一个或多个子集。例如,以下代码将访问数组a中的前两个元素:

import numpy as npa = np.array([1, 2, 3])
print(a[:2])

输出结果:

[1 2]

对于多维数组,可以对每个维度使用切片。例如,以下代码将访问数组b的第一行和第二行的前两列

import numpy as npb = np.array([[1, 2, 3], [4, 5, 6]])
print(b[:2, :2])

输出结果:

[[1 2][4 5]]
修改数组

可以通过下标或切片修改数组中的元素。例如,以下代码将修改数组a中的第二个元素:

import numpy as npa = np.array([1, 2, 3])
a[1] = 4
print(a)

输出结果:

[1 4 3]

对于多维数组,可以使用下标或切片修改单个元素或子集。例如,以下代码将修改数组b中的第一行第二列元素:

import numpy as npb = np.array([[1, 2, 3], [4, 5, 6]])
b[0, 1] = 7
print(b)

输出结果:

[[1 7 3][4 5 6]]
数组运算

NumPy提供了许多对数组进行运算的函数和方法。以下是一些基本运算的示例:

  • 加法:可以使用+运算符将两个数组相加。例如,以下代码将计算数组a和数组b的和
import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
print(c)

输出结果:

[5 7 9]
  • 乘法:可以使用*运算符将两个数组相乘。例如,以下代码将计算数组a和数组b的乘积:
import numpy as npa = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a * b
print(c)

输出结果:

[ 4 10 18]
  • 平方根:可以使用np.sqrt()函数计算数组中每个元素的平方根。例如,以下代码将计算数组a中每个元素的平方根:
import numpy as npa = np.array([1, 4, 9])
b = np.sqrt(a)
print(b)

输出结果:

[1. 2. 3.]
广播

广播是NumPy的一种强大的特性,它可以使不同形状的数组进行算术运算。广播规则是将较小的数组沿着缺失的维度进行扩展以匹配较大数组的形状。例如,以下代码将计算数组a和标量值2的和:

import numpy as npa = np.array([1, 2, 3])
b = a + 2
print(b)

输出结果:

[3 4 5]

在这个例子中,标量值2被广播成一个形状与数组a相同的数组,然后与数组a相加。

数组转置

数组转置是指将数组的行和列交换。在NumPy中,可以使用数组的T属性或np.transpose()函数来转置数组。例如,以下代码将转置数组a:

import numpy as npa = np.array([[1, 2], [3, 4], [5, 6]])
b = a.T
print(b)

输出结果:

[[1 3 5][2 4 6]]
聚合

聚合是指对数组进行统计操作,例如求和,求平均值,计算标准差等。在NumPy中,可以使用数组的方法或函数来执行各种聚合操作。例如,以下代码将计算数组a的总和:

import numpy as npa = np.array([1, 2, 3])
b = a.sum()
print(b)

输出结果:

6
创建随机数组

NumPy提供了许多函数来创建随机数组。这些函数可以用于模拟随机过程,生成测试数据等。以下是一些常用的函数:

  • np.random.rand(): 创建一个指定形状的随机数组,数组元素的取值范围为0到1之间。
  • np.random.randn(): 创建一个指定形状的随机数组,数组元素的取值符合标准正态分布。
  • np.random.randint(low, high, size): 创建一个指定形状的随机整数数组,数组元素的取值范围为low到high之间。
  • np.random.random_sample(size): 创建一个指定形状的随机数组,数组元素的取值范围为0到1之间。
    以下是一些示例代码:
import numpy as np# 创建一个形状为(2, 3)的随机数组
a = np.random.rand(2, 3)
print(a)# 创建一个形状为(2, 3)的随机整数数组
b = np.random.randint(0, 10, (2, 3))
print(b)# 创建一个形状为(2, 3)的随机数组,元素符合标准正态分布
c = np.random.randn(2, 3)
print(c)

输出结果:

[[0.5163848  0.17251428 0.84763657][0.72554487 0.16582879 0.13572987]]
[[6 3 2][4 8 3]]
[[ 1.19130454  0.23281197 -1.17679426][-0.20791349 -1.41122879 -0.45008923]]
数组形状操作

NumPy提供了许多函数来操作数组的形状。以下是一些常用的函数:

  • ndarray.reshape(): 重塑数组的形状,返回一个新的数组,不改变原数组。
  • ndarray.resize(): 修改数组的形状,改变原数组。
  • ndarray.flatten(): 将数组展开成一个一维数组。
  • ndarray.ravel(): 将数组展平成一个一维数组,返回一个视图,不改变原数组。
  • np.newaxis: 在数组中插入新维度。
    以下是一些示例代码:
import numpy as np# 创建一个形状为(2, 3)的数组
a = np.array([[1, 2, 3], [4, 5, 6]])# 重塑数组的形状
b = a.reshape(3, 2)
print(b)# 修改数组的形状
a.resize(3, 2)
print(a)# 展开数组成一维数组
c = a.flatten()
print(c)# 展平数组成一维数组
d = a.ravel()
print(d)# 在数组中插入新维度
e = a[:, np.newaxis]
print(e.shape)

输出结果:

[[1 2][3 4][5 6]]
[[1 2][3 4
数组的排序

NumPy数组提供了多种排序函数,包括sort()、argsort()、lexsort()、searchsorted()等。以下是一些常用的函数:

  • ndarray.sort(): 对数组进行排序。
  • np.argsort(): 返回数组元素从小到大排序后的索引。
  • np.lexsort(): 返回按照多个关键字排序后的索引。
  • np.searchsorted(): 在已排序的数组中查找元素。
    以下是一些示例代码:
import numpy as np# 创建一个数组
a = np.array([3, 1, 2])# 对数组进行排序
a.sort()
print(a) # 输出[1 2 3]# 返回数组元素从小到大排序后的索引
a = np.array([3, 1, 2])
print(np.argsort(a)) # 输出[1 2 0]# 创建一个二维数组
b = np.array([[3, 1, 4], [1, 5, 9]])对数组按照第一列进行排序
idx = np.lexsort(b[:, ::-1].T)
print(b[idx]) # 输出[[1 5 9]
# [3 1 4]]在已排序的数组中查找元素
a = np.array([1, 2, 3, 4, 5])
print(np.searchsorted(a, 3)) # 输出2
print(np.searchsorted(a, 3, side='right')) # 输出3
数组的统计操作

NumPy数组提供了多种统计函数,包括mean()、std()、var()、min()、max()、sum()等。以下是一些常用的函数:

  • ndarray.mean(): 计算数组的平均值。
  • ndarray.std(): 计算数组的标准差。
  • ndarray.var(): 计算数组的方差。
  • ndarray.min(): 返回数组的最小值。
  • ndarray.max(): 返回数组的最大值。
  • ndarray.sum(): 计算数组的和。

以下是一些示例代码:

import numpy as np# 创建一个形状为(2, 3)的数组
a = np.array([[1, 2, 3], [4, 5, 6]])# 计算数组的平均值
print(np.mean(a)) # 输出3.5# 计算数组的标准差
print(np.std(a)) # 输出1.707825127659933# 计算数组的方差
print(np.var(a)) # 输出2.9166666666666665# 返回数组的最小值
print(np.min(a)) # 输出1# 返回数组的最大值
print(np.max(a)) # 输出6# 计算数组的和
print(np.sum(a)) # 输出21

相关内容

热门资讯

小学庆元旦活动主持词 小学庆元旦活动主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在当今社会生活中,...
爵士舞蹈串词主持词   爵士舞即美国现代舞,是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代...
幼儿园元旦节目主持词   齐x:亲爱的爸爸妈妈  周x:亲爱的爷爷奶奶  王x:亲爱的老师  李x:亲爱的小朋友们  合:...
运动会运动员赞美词 运动会运动员赞美词1.赞运动员是我们的目标,是我们的信念,在清凉的初秋,在喧嚣的田径场上,。你们点燃...
黄梅戏晚会的主持词 黄梅戏晚会的主持词  戏迷欢庆四一八 黄梅又添新奇葩  ——喜迎418暨欢庆黄梅戏艺术团成立的晚会台...
学校秋季运动会开幕主持词 学校秋季运动会开幕主持词(精选6篇)  主持词要注意活动对象,针对活动对象写相应的主持词。在当今社会...
庆祝五四文艺晚会主持稿 庆祝五四文艺晚会主持稿  男:尊敬的各位领导、来宾  女:电视机前的观众朋友们  合:大家好  男:...
最新品鉴会主持词 最新品鉴会主持词  鉴会现在开始!  女:各位领导,各位嘉宾  男:女士们、先生们  合:大家下午好...
端午节晚会主持词 精选端午节晚会主持词(通用8篇)  根据活动对象的不同,需要设置不同的主持词。时代不断在进步,很多场...
论坛一周年庆典晚会主持词 论坛一周年庆典晚会主持词  主持词是由主持人于节目进行过程中串联节目的串联词。如今的各种演出活动和集...
最新研讨会主持词 最新研讨会主持词(通用11篇)  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在现在...
重阳节的主持词 重阳节的主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在人们越来越多的参与各...
记者节活动主持词 记者节活动主持词(精选7篇)  主持词没有固定的格式,他的最大特点就是富有个性。在现今人们越来越重视...
高校运动会开幕式精彩致辞 高校运动会开幕式精彩致辞  在平平淡淡的学习、工作、生活中,大家肯定对各类致辞都很熟悉吧,致辞具有思...
幼儿园六一文艺演出主持词 幼儿园六一文艺演出主持词  20xx年六一文艺演出主持词  尊敬的各位领导、各位老师、亲爱的同学们:...
团拜会主持词 -主持词 团拜会主持词 -主持词大家下午好!腊梅催春至,瑞雪兆丰年!此时窗外虽然大雪纷飞、寒意袭人,但这里却热...
最新三八妇女节活动的主持词 最新三八妇女节活动的主持词(精选10篇)  主持词的写作需要将主题贯穿于所有节目之中。在现在的社会生...
小学师德报告会的主持词 小学师德报告会的主持词各位领导,各位老师:  大家下午好!采撷着金秋十月的累累硕果,收藏着金秋十月的...
《像小强一样儿活着》的经典台... 《像小强一样儿活着》的经典台词  《像小强一样活着》改编自同名网络小说,是难得的本土电影。曾有影评家...