Python中的NumPy数组

Python中的NumPy数组

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

NumPy数组与内置的Python序列的对比

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

注意:各种基于Python的科学和数学软件包都使用Numpy。它们可能将输入作为一个内置的Python序列,但它们很可能将数据转换为NumPy数组,以达到更快的处理。这说明需要了解NumPy

为什么Numpy这么快

Numpy数组主要用C语言编写。由于是用C语言编写的,NumPy数组被存储在连续的内存位置,这使得它们更容易被访问和操作。这意味着你可以用编写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数组。

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

输出:

[1 2 3 4]

产生的数组看起来和列表一样,但实际上是一个NumPy对象。

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

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) = <class 'list'>
numpyArr = [1 2 3 4] and type(numpyArr) = <class 'numpy.ndarray'>

你可以看到li是一个列表对象,而numpyArr是NumPy的一个数组对象。

NumPy数组来自一个元组

你可以用类似的语法从一个元组中制作ndarray。

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

或者

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

示例:

下面的例子说明了如何从一个元组创建一个NumPy数组。

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) = <class 'tuple'>
numpyArr = [1 2 3 4] and type(numpyArr) = <class 'numpy.ndarray'>

注意,numpyArr的值在两种转换中的任何一种都保持不变。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程