python的中的numpy入门

本文介绍了Python中的科学计算库NumPy,包括安装、导入、创建数组、数组属性和操作、索引与切片、形状变换,以及使用示例。还探讨了NumPy的缺点和相关库,如Pandas、TensorFlow和SciPy。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python中的NumPy入门

在Python中,NumPy是一个强大的数值计算库。它提供了高性能的多维数组对象和各种计算函数,是进行科学计算和数据分析的重要工具。本文将介绍NumPy的基本概念以及如何使用它进行数组操作和数学运算。

1. 安装NumPy

要使用NumPy,首先需要在Python环境中安装它。可以使用pip包管理工具进行安装。打开终端或命令提示符,执行以下命令:

plaintextCopy codepip install numpy

2. 导入NumPy

在Python中,使用​​import​​语句导入NumPy库:

pythonCopy codeimport numpy as np

一般约定的做法是将NumPy库命名为​​np​​,以便在代码中使用时更加方便。

3. 创建NumPy数组

NumPy的核心对象是​​ndarray​​(N-dimensional array),即多维数组。可以使用​​array()​​函数创建一个ndarray对象。例如,创建一个一维数组:

pythonCopy codeimport numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

输出结果为:

plaintextCopy code[1 2 3 4 5]

同样,可以创建二维、三维等多维数组。例如,创建一个二维数组:

pythonCopy codeimport numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)

输出结果为:

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

4. 数组属性和操作

4.1 数组属性

ndarray对象有一些常用的属性,可以用来查询数组的特性,如形状、维度数、数据类型等。例如:

pythonCopy codeimport numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)    # 输出数组形状(维度数)
print(arr.ndim)     # 输出数组的维度数
print(arr.dtype)    # 输出数组元素的数据类型

输出结果为:

plaintextCopy code(2, 3)
2
int64

4.2 数组操作

NumPy提供了许多函数和方法用于对数组进行操作,例如计算数组的和、平均值、最大值等。这些操作可以在整个数组上执行,也可以在特定的轴上执行。例如:

pythonCopy codeimport numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.sum())         # 计算数组所有元素的和
print(arr.mean())        # 计算数组所有元素的平均值
print(arr.max(axis=0))   # 沿着轴0(列)计算数组每列的最大值

输出结果为:

plaintextCopy code21
3.5
[4 5 6]

5. 数组索引和切片

NumPy允许使用索引和切片来访问数组元素,与Python的列表类似。例如:

pythonCopy codeimport numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr[0])         # 索引第一个元素
print(arr[1:4])       # 切片取出第二个到第四个元素

输出结果为:

plaintextCopy code1
[2 3 4]

对于多维数组,可以使用逗号分隔的索引和切片来访问特定的元素或子数组。例如:

pythonCopy codeimport numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1])           # 访问第一行第二列的元素
print(arr[:, 1:3])         # 取出所有行的第二和第三列

输出结果为:

plaintextCopy code2
[[2 3]
 [5 6]]

6. 数组形状变换

在NumPy中,可以使用​​reshape()​​函数来改变数组的形状。例如:

pythonCopy codeimport numpy as np
arr = np.array([1, 2, 3, 4, 5])
reshaped_arr = arr.reshape((5, 1))      # 将一维数组转换为列向量
print(reshaped_arr)

输出结果为:

plaintextCopy code[[1]
 [2]
 [3]
 [4]
 [5]]

7. 示例代码:计算学生成绩平均值

假设有一批学生成绩数据,每个学生有多门科目的成绩。现在我们想要计算每个学生的平均成绩以及每门科目的平均成绩。可以使用NumPy来进行数据计算和操作。 首先,我们创建一个包含学生成绩的二维数组。每一行表示一个学生的成绩,每一列表示一门科目的成绩。示例代码如下:

pythonCopy codeimport numpy as np
# 创建学生成绩数组
scores = np.array([[80, 90, 85],
                   [70, 85, 90],
                   [75, 80, 85],
                   [85, 90, 80]])
print("学生成绩数组:")
print(scores)

输出结果为:

plaintextCopy code学生成绩数组:
[[80 90 85]
 [70 85 90]
 [75 80 85]
 [85 90 80]]

然后,我们可以使用NumPy的函数和方法进行计算。例如,使用​​mean()​​函数计算每个学生的平均成绩和每门科目的平均成绩。示例代码如下:

pythonCopy code# 计算每个学生的平均成绩
student_avg = np.mean(scores, axis=1)
print("\n每个学生的平均成绩:")
print(student_avg)
# 计算每门科目的平均成绩
subject_avg = np.mean(scores, axis=0)
print("\n每门科目的平均成绩:")
print(subject_avg)

输出结果为:

plaintextCopy code每个学生的平均成绩:
[85.         81.66666667 80.        85.        ]
每门科目的平均成绩:
[77.5 86.25 85.  ]

通过以上代码,我们成功计算了每个学生的平均成绩和每门科目的平均成绩,实现了对学生成绩数据的统计分析。这个例子展示了NumPy在实际应用场景中的灵活性和高效性。 希望这个示例代码可以帮助您更好地理解NumPy的使用方法和实际应用。

NumPy的缺点

  1. 大量内存占用:NumPy数组在内存中是连续存储的,这意味着数组的大小必须在创建之前就确定。当处理大规模数据集时,NumPy数组可能会占用相当大的内存空间。
  2. 不支持动态数据的添加和删除:NumPy的数组大小是固定的,一旦创建,就无法动态地添加或删除元素。这使得数据的操作相对局限,有时需要重新创建数组并复制数据。
  3. 不支持高级数据操作和复杂计算:尽管NumPy提供了基本的数组操作和线性代数函数,但在处理更复杂的数据操作和计算时,NumPy的功能相对有限。
  4. 学习曲线较陡峭:使用NumPy需要一定的数学和计算机基础知识,理解和掌握NumPy的用法和函数可能需要一定的学习成本和时间。

类似的库或工具

  1. Pandas:Pandas是基于NumPy构建的数据处理库,提供了更高级的数据结构和功能,如数据表(DataFrame)和数据索引。它可以方便地进行数据清洗、转换、分组、筛选等操作,适用于处理结构化数据。

  2. TensorFlow:TensorFlow是一个强大的开源机器学习框架,用于构建和训练深度学习模型。虽然它也使用到了NumPy数组作为底层数据结构,但它提供了更高级的功能和算法,如神经网络层、优化器等,适用于实现复杂的机器学习任务。

  3. SciPy:SciPy是一个专注于科学计算的Python库,它提供了丰富的高级数学、科学和工程计算功能,例如插值、优化、图像处理等。虽然它也依赖于NumPy,但它提供了更多领域特定的算法和函数。

  4. Dask:Dask是一个用于处理大规模数据的灵活并行计算库,它可以扩展NumPy和Pandas的功能,以便处理超出单个计算机内存限制的数据集。

  5. Spark:Apache Spark是一个用于大规模数据处理和分析的强大开源工具,它提供了分布式计算功能,并支持大规模数据集的处理和分析。Spark中也包含可以与NumPy进行交互的功能。

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值