📜  Python中的NumPy数组

📅  最后修改于: 2022-05-13 01:55:41.111000             🧑  作者: Mango

Python中的NumPy数组

Python列表是数组的替代品,但在计算大量数值数据时,它们无法提供所需的性能。为了解决这个问题,我们使用了一个名为 NumPy 的Python库。 NumPy 这个词代表 Numerical Python。 NumPy 提供了一个名为 ndarray 的数组对象。它们类似于标准的Python序列,但在某些关键因素上有所不同。

NumPy 数组与内置Python序列

  • 与列表不同,NumPy 数组的大小是固定的,改变数组的大小会导致创建一个新数组,而原始数组将被删除。
  • 数组中的所有元素都属于同一类型。
  • 与标准Python序列相比,Numpy 数组更快、更高效,并且需要更少的语法。

注意:各种基于 Python 的科学和数学包都使用 Numpy。他们可能将输入作为内置的Python序列,但他们可能会将数据转换为 NumPy 数组以实现更快的处理。这解释了理解 NumPy 的必要性。

为什么 Numpy 这么快?

Numpy 数组主要是用 C 语言编写的。 NumPy 数组是用 C 编写的,存储在连续的内存位置,这使得它们可以访问并且更容易操作。这意味着您可以通过编写Python程序轻松获得 C 代码的性能水平。

使用 Numpy 数组

如果您的系统中没有安装 NumPy,您可以按照以下步骤进行操作。安装 NumPy 后,您可以像这样将其导入您的程序中

import numpy as np

这里 np 是 NumPy 的常用别名。

列表中的 Numpy 数组

您可以使用 np 别名使用 array() 方法创建列表的 ndarray。

li = [1,2,3,4]
numpyArr = np.array(li)

或者

numpyArr = np.array([1,2,3,4])

该列表被传递给 array() 方法,然后返回具有相同元素的 NumPy 数组。

例子:

以下示例显示如何从列表初始化 NumPy 数组。

Python3
import numpy as np
  
li = [1, 2, 3, 4]
numpyArr = np.array(li)
print(numpyArr)


Python3
import numpy as np
  
li = [1, 2, 3, 4]
numpyArr = np.array(li)
  
print("li =", li, "and type(li) =", type(li))
print("numpyArr =", numpyArr, "and type(numpyArr) =", type(numpyArr))


Python3
import numpy as np
  
tup = (1, 2, 3, 4)
numpyArr = np.array(tup)
  
print("tup =", tup, "and type(tup) =", type(tup))
print("numpyArr =", numpyArr, "and type(numpyArr) =", type(numpyArr))


输出:

[1 2 3 4]

结果数组看起来与列表相同,但实际上是一个 NumPy 对象。

示例:我们举个例子来检查 numpyArr 是否为 NumPy 对象。

Python3

import numpy as np
  
li = [1, 2, 3, 4]
numpyArr = np.array(li)
  
print("li =", li, "and type(li) =", type(li))
print("numpyArr =", numpyArr, "and type(numpyArr) =", type(numpyArr))

输出:

li = [1, 2, 3, 4] and type(li) = 
numpyArr = [1 2 3 4] and type(numpyArr) = 

如您所见,li 是一个列表对象,而 numpyArr 是 NumPy 的一个数组对象。

来自元组的 NumPy 数组

您可以使用类似的语法从元组制作 ndarray。

tup = (1,2,3,4)
numpyArr = np.array(tup)

或者

numpyArr = np.array((1,2,3,4))

例子:

以下示例说明了如何从元组创建 NumPy 数组。

Python3

import numpy as np
  
tup = (1, 2, 3, 4)
numpyArr = np.array(tup)
  
print("tup =", tup, "and type(tup) =", type(tup))
print("numpyArr =", numpyArr, "and type(numpyArr) =", type(numpyArr))

输出:

tup = (1, 2, 3, 4) and type(tup) = 
numpyArr = [1 2 3 4] and type(numpyArr) = 

请注意,对于两个转换中的任何一个,numpyArr 的值都保持不变。