文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 框架 numy 学习笔记,你是否掌握了这些重要概念?

2023-10-24 22:50

关注

Python 框架 numpy 学习笔记,你是否掌握了这些重要概念?

Python 是一门非常强大的编程语言,在科学计算领域中应用广泛,而 NumPy 作为其重要的数据处理库,在科学计算中也扮演了重要的角色。本篇文章将会介绍 NumPy 中的一些重要概念,以及如何使用这些概念来进行数据处理和分析。

  1. NumPy 的基本概念

NumPy 是一个 Python 库,用于处理大型多维数组和矩阵,其核心是 ndarray 数据结构。ndarray 是一个 N 维数组对象,由同类数据类型的元素组成,每个元素在内存中占用相同的字节大小。

我们可以使用 NumPy 创建 ndarray 对象,例如:

import numpy as np

a = np.array([1, 2, 3])
print(a)

这里我们使用 np.array() 函数创建了一个一维数组,输出结果为 [1 2 3]。我们也可以使用 np.arange() 函数来创建一个等差数列:

b = np.arange(10)
print(b)

这里我们创建了一个长度为 10 的一维数组,输出结果为 [0 1 2 3 4 5 6 7 8 9]。除此之外,我们还可以使用 np.zeros()np.ones() 函数来创建一个元素全为 0 或者全为 1 的数组,例如:

c = np.zeros((3, 3))
print(c)

d = np.ones((2, 2))
print(d)

这里我们创建了一个 3x3 的零数组和一个 2x2 的全为 1 的数组。

  1. NumPy 的数组操作

NumPy 提供了多种对数组进行操作的函数和方法,例如数组的切片、索引、拼接和重塑等。我们可以使用 [] 运算符来访问数组中的元素,例如:

a = np.array([1, 2, 3])
print(a[0])

这里输出结果为 1,表示访问数组中的第一个元素。我们也可以使用切片来获取数组的子集,例如:

b = np.arange(10)
print(b[2:5])

这里输出结果为 [2 3 4],表示获取数组中下标为 2 到下标为 4 的元素。我们还可以使用 np.concatenate() 函数来进行数组的拼接,例如:

c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
e = np.concatenate((c, d), axis=0)
print(e)

这里我们将两个 2x2 的数组沿着第一个维度进行拼接,输出结果为:

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

除此之外,我们还可以使用 np.reshape() 函数来重塑数组的形状,例如:

f = np.arange(12)
g = f.reshape((3, 4))
print(g)

这里我们将一个长度为 12 的一维数组重塑为一个 3x4 的二维数组,输出结果为:

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
  1. NumPy 的数学函数

NumPy 提供了多种数学函数,例如对数函数、三角函数、指数函数等。这些函数可以接受一个或多个数组作为参数,并返回一个新的数组作为结果。我们可以使用 np.log() 函数来计算数组的对数,例如:

a = np.array([1, 2, 3])
b = np.log(a)
print(b)

这里我们对数组 [1 2 3] 中的每个元素取对数,输出结果为 [0. 0.69314718 1.09861229]。我们也可以使用 np.sin()np.cos() 函数来计算数组中每个元素的正弦和余弦值,例如:

c = np.array([0, np.pi/2, np.pi])
d = np.sin(c)
e = np.cos(c)
print(d)
print(e)

这里我们计算了数组 [0 π/2 π] 中每个元素的正弦和余弦值,输出结果为:

[0.0000000e+00 1.0000000e+00 1.2246468e-16]
[ 1.000000e+00  6.123234e-17 -1.000000e+00]

除此之外,NumPy 还提供了许多其他的数学函数,例如 np.exp() 函数用于计算数组中每个元素的指数值,np.sqrt() 函数用于计算数组中每个元素的平方根等。

  1. NumPy 的广播

广播是 NumPy 中一种非常强大的机制,它能够使得不同形状的数组在进行算术运算时表现得像同样的形状。具体来说,NumPy 在运算两个数组时,会自动对这两个数组进行广播,使得它们的形状相同后再进行运算。

例如,我们可以对一个 2x2 的数组和一个 1x2 的数组进行加法运算,如下所示:

a = np.array([[1, 2], [3, 4]])
b = np.array([1, 2])
c = a + b
print(c)

这里我们将数组 b 广播为一个 2x2 的数组,然后对两个数组进行加法运算,输出结果为:

[[2 4]
 [4 6]]

除了加法之外,广播还可以用于其他算术运算、比较运算和逻辑运算等。

  1. NumPy 的随机函数

NumPy 还提供了多种随机函数,用于生成随机数和随机数组。这些函数可以用于模拟随机事件,生成随机数据等。我们可以使用 np.random.rand() 函数来生成一个指定形状的随机数组,例如:

a = np.random.rand(3, 2)
print(a)

这里我们生成了一个 3x2 的随机数组,输出结果类似于:

[[0.87772416 0.47430328]
 [0.40774962 0.29963571]
 [0.22040671 0.72272882]]

除此之外,NumPy 还提供了其他的随机函数,例如 np.random.randn() 函数用于生成服从正态分布的随机数,np.random.randint() 函数用于生成指定范围内的随机整数等。

  1. NumPy 的线性代数函数

NumPy 还提供了多种线性代数函数,用于进行矩阵计算和矩阵分解等。这些函数可以用于求解线性方程组、计算矩阵的特征值和特征向量等。我们可以使用 np.linalg.inv() 函数来求解一个矩阵的逆矩阵,例如:

a = np.array([[1, 2], [3, 4]])
b = np.linalg.inv(a)
print(b)

这里我们求解了一个 2x2 的矩阵的逆矩阵,输出结果为:

[[-2.   1. ]
 [ 1.5 -0.5]]

除此之外,NumPy 还提供了其他的线性代数函数,例如 np.linalg.det() 函数用于计算矩阵的行列式,np.linalg.eig() 函数用于计算矩阵的特征值和特征向量等。

本文介绍了 NumPy 中的一些重要概念,包括数组的创建、数组的操作、数学函数、广播、随机函数和线性代数函数等。希望本文能够帮助读者更好地掌握 NumPy 的使用方法,从而在科学计算中发挥更大的作用。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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