Python 在数组中操作Numpy数组的快速方法
我想找到一种在Numpy中快速操作数组的方法,比如这个数组,它的形状是(10,): 例如,我想计算数组元素的总数,上面的数组是16个,但不做For循环,因为实际上我的“嵌套数组”会很大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数组进行解缠,然后按如下方式查找长度:
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