在内存中引用numpy数组结构上的documentation:
NumPy中的几种算法适用于任意跨步阵列。 但是,某些算法需要单段数组。当一个 不规则跨步数组传递给这样的算法,副本是 自动制作。
什么是不规则跨度阵列?
这是--- numpy.array([[1], [1,2]])
吗?如果不是,请提供一个例子。
答案 0 :(得分:5)
例如:
>>> import numpy as np
>>> a = np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> b = a[::2]
>>> b
array([0, 2, 4, 6, 8])
a
是一个单段数组,所有数据在一个连续的内存块中紧密排列。另一方面,b
是对同一个内存的视图,其中步长是元素大小的两倍,跳过奇数整数的内存位置。
作为需要单段数组的函数之一,如果执行np.sort(b)
,它将首先必须将这些块复制到连续的内存块,然后再实际进行实际排序。