如何创建基本数组 包括np.array(),np.zeros(),np.ones(),np.empty(),np.arange(),np.linspace()函数,dtype参数。 要创建NumPy数组,可以使用函数np.array()。 创建一个数组最简单的办法是向np.array()传递一个列表。作为可选项,还可以在参数中指定数据类型。有关数据类型的更多信息请打开https://numpy.org/doc/stable/reference/arrays.dtypes.html#arrays-dtypes。
import numpy as np
>>> a = np.array([1, 2, 3])
上面的执行过程如下图所示: 请注意,上图只是简化了过程,目的让你对NumPy概念和机制有一个基本的了解。数组和数组操作的实际情况比上图的描述要复杂得多! 除了从序列创建数组外,还可以轻松创建一个填充有0的数组:
>>> np.zeros(2)
array([0., 0.])
或填充有1的数组:
>>> np.ones(2)
array([1., 1.])
甚至是一个空数组!函数empty创建一个数组,其初始内容是随机的,取决于内存的状态(只分配内存但不用0或1等具体数值刷一下。)。使用empty而非zeros(或类似的)是为了有更快的运行速度,只不过需确保在创建之后填充每个元素!
>>> # Create an empty array with 2 elements
>>> np.empty(2)
array([3.14, 42. ]) # may vary
您可以创建包含一系列元素的数组:
np.arange(4)
array([0, 1, 2, 3])
也可以使用np.linspace()创建一个数组,其中的值在指定的实数域内具有同样的间隔:
>>> np.linspace(0, 10, num=5)
array([ 0. , 2.5, 5. , 7.5, 10. ])
注意:输入的实数域是闭区间,参数num是元素个数。
指定数据类型: 虽然默认的数据类型是浮点型(np.fat64),但你可以使用dtype关键字显式指定所需的数据类型。
>>> x = np.ones(2, dtype=np.int64)
>>> x
array([1, 1])
想了解更多有关创建数组的知识请打开https://numpy.org/doc/stable/user/quickstart.html#quickstart-array-creation。
添加、删除和元素排序
本节包括np.sort(),np.contanate()函数。 使用np.sort()对元素进行排序是很简单的。调用函数时,可以指定轴、种类和顺序。 如果原数组是:
arr = np.array([2, 1, 5, 3, 7, 4, 6, 8])
你可以使用以下命令按升序快速排序数字:
np.sort(arr)
array([1, 2, 3, 4, 5, 6, 7, 8])
除了返回数组的排序副本的sort函数之外,还可以使用: · argsort:沿指定轴的间接排序,https://numpy.org/doc/stable/reference/generated/numpy.argsort.html#numpy.argsort。 · lexsort:对多个键的间接稳定排序,https://numpy.org/doc/stable/reference/generated/numpy.lexsort.html#numpy.lexsort。 · searchsorted:查找已排序数组中的元素,https://numpy.org/doc/stable/reference/generated/numpy.searchsorted.html#numpy.searchsorted。 · partition:部分排序,https://numpy.org/doc/stable/reference/generated/numpy.partition.html#numpy.partition。 要阅读有关数组排序的更多信息,请参阅sort:https://numpy.org/doc/stable/reference/generated/numpy.sort.html#numpy.sort。 如果现在有两个数组:
>>> a = np.array([1, 2, 3, 4])
>>> b = np.array([5, 6, 7, 8])
你可以使用np.contanate连接它们。
>>> np.concatenate((a, b))
array([1, 2, 3, 4, 5, 6, 7, 8])
或者,是两个二维数组:
>>> x = np.array([[1, 2], [3, 4]])
>>> y = np.array([[5, 6]])
你可以这样连接它们:
>>> np.concatenate((x, y), axis=0)
array([[1, 2],
[3, 4],
[5, 6]])
axis=0是默认值,可以省略,表示最外层。最外层长度不一样,默认值连接没问题,但axis>0时出错: 为了从数组中删除元素,使用索引选择要保留的元素,然后用np.concatenate连接。 要阅读有关连接的更多信息,请参阅concatenate:https://numpy.org/doc/stable/reference/generated/numpy.concatenate.html#numpy.concatenate。