文章目录
NumPy介绍
什么是NumPy?
NumPy是一个用于处理数组的Python库。
它还具有在线性代数,傅里叶变换和矩阵领域工作的函数。
NumPy由Travis Oliphant于2005年创建。这是一个开源项目,您可以自由使用它。
NumPy 代表 Numeric Python。
为什么使用NumPy?
在Python中,我们有用于数组目的的列表,但它们的处理速度很慢。
NumPy旨在提供一个比传统Python列表快50倍的数组对象。
NumPy中的数组对象被称为,它提供了许多支持函数,使工作变得非常容易。ndarray``ndarray
数组在数据科学中非常频繁地使用,其中速度和资源非常重要。
为什么NumPy比Lists快?
与列表不同,NumPy数组存储在内存中的一个连续位置,因此进程可以非常有效地访问和操作它们。
此行为在计算机科学中称为引用位置。
这是NumPy比列表更快的主要原因。此外,它还经过优化,可与最新的CPU架构配合使用
NumPy是用哪种语言编写的?
NumPy是一个Python库,部分用Python编写,但大多数需要快速计算的部分都是用C或C++编写的。
NumPy代码库在哪里?
NumPy的源代码位于此github存储库 https://github.com/numpy/numpy
NumPy 安装
安装 NumPy
pip install numpy
尝试使用 NumPy
-
Import NumPy
安装NumPy后,通过添加关键字将其导入到应用程序中:
import
例子:
import numpy arr = numpy.array([1, 2, 3, 4, 5]) print(arr)
响应结果:
[1 2 3 4 5]
-
别名导入:
import numpy as np
例子:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr)
响应结果:
[1 2 3 4 5]
检查数字Py版本
版本字符串存储在属性下。__version__
import numpy as np
print(np.__version__)
响应结果:
1.22.4
NumPy 创建数组
创建一个 NumPy ndarray 对象
NumPy 用于处理数组。NumPy 中的数组对象称为 : ndarray
我们可以使用函数array()
创建一个NumPy ndarray
对象。
例子:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
print(type(arr))
运行结果:
[1 2 3 4 5]
<class 'numpy.ndarray'>
要创建一个ndarray
,我们可以将列表,元组或任何类似数组的对象传递到方法array()
中,它将转换为
ndarray
import numpy as np
arr = np.array((1, 2, 3, 4, 5))
print(arr)
运行结果:
[1 2 3 4 5]
数组中的维度
数组中的维度是数组深度的一个级别(嵌套数组)。
嵌套数组: 是以数组作为其元素的数组。
0-D 阵列
0-D 数组或标量是数组中的元素。数组中的每个值都是一个 0-D 数组。
例: 创建值为 42 的 0-D 数组
import numpy as np
arr = np.array(42)
print(arr)
运行结果:
42
1-D 阵列
以 0-D 数组作为其元素的数组称为一维或一维数组。
这些是最常见和最基本的数组。
例 : 创建一个包含值 1,2,3,4,5 的一维数组
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
运行结果:
[1 2 3 4 5]
2-D 阵列
以一维数组作为其元素的数组称为二维数组。
这些通常用于表示矩阵或二阶张量。
NumPy有一个专门用于矩阵运算的整个子模块,称为numpy.mat
例 创建一个包含两个值为 1、2、3 和 4,5,6 的数组的 2-D 数组:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
运行结果:
[[1 2 3]
[4 5 6]]
3-D 阵列
以二维数组(矩阵)作为其元素的数组称为三维数组。
这些通常用于表示三阶张量。
例 创建一个包含两个 2-D 数组的 3-D 数组,这两个数组都包含两个值为 1,2,3 和 4,5,6 的数组:
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(arr)
运行结果:
[[[1 2 3]
[4 5 6]]
[[1 2 3]
[4 5 6]]]
查看数组维度
NumPy Arrays提供了一个属性ndim
,该属性返回一个整数,该整数告诉我们数组有多少个维度。
例子:检查数组有多少个维度:
import numpy as np
a = np.array(42)
b = np.array([1, 2, 3, 4, 5])
c = np.array([[1, 2, 3], [4, 5, 6]])
d = np.array([[[1, 2, 3], [4, 5, 6]], [[1, 2, 3], [4, 5, 6]]])
print(a.ndim)
print(b.ndim)
print(c.ndim)
print(d.ndim)
运行结果:
0
1
2
3
高维数组
一个数组可以具有任意数量的维度。
创建数组时,可以使用参数ndmin
定义维度数。
例 创建一个具有 5 个维度的数组,并验证它是否具有 5 个维度:
import numpy as np
arr = np.array([1, 2, 3, 4], ndmin=5)
print(arr)
print('number of dimensions :', arr.ndim)
运行结果:
[[[[[1 2 3 4]]]]]
number of dimensions : 5