Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数组中操作Numpy数组的快速方法_Python_Arrays_Numpy - Fatal编程技术网

Python 在数组中操作Numpy数组的快速方法

Python 在数组中操作Numpy数组的快速方法,python,arrays,numpy,Python,Arrays,Numpy,我想找到一种在Numpy中快速操作数组的方法,比如这个数组,它的形状是(10,): 例如,我想计算数组元素的总数,上面的数组是16个,但不做For循环,因为实际上我的“嵌套数组”会很大 谢谢 在您的案例中,查找数组长度的一种方法是对嵌套的numpy数组进行解缠,然后按如下方式查找长度: a = [array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]), array([5]), array([6]) ,a

我想找到一种在Numpy中快速操作数组的方法,比如这个数组,它的形状是(10,):

例如,我想计算数组元素的总数,上面的数组是16个,但不做For循环,因为实际上我的“嵌套数组”会很大


谢谢

在您的案例中,查找数组长度的一种方法是对嵌套的numpy数组进行解缠,然后按如下方式查找长度:

a = [array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]),
 array([5]), array([6]) ,array([1, 7]), array([8]), array([9])]

len(np.concatenate(a).ravel())
#Here we expand the numpy arrays and then flatten it to find the length.
输出:

16

据我所知,与for循环相比,ravel具有更好的timeit性能时间。

定义“操纵”。如果只需要长度,最好将其展平为单个阵列。否则,您只能选择s迭代,因为这些数组的长度不均匀。这是一个数组列表-或对象数据类型数组。循环、列表理解是常用的工具
np.frompyfunc
在某些情况下可能很有用,但速度差异不大。如答案所示,使用“连接方式”帮助将列表“展平”为一个数组。这取决于操纵。我认为你不需要在这里拉威尔。
16