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

时间:2018-12-31 07:55:06

标签: python arrays numpy

我想找到一种方法来快速处理Numpy中这样的数组,其形状为(10,):

[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])]

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

谢谢!

1 个答案:

答案 0 :(得分:5)

一种查找数组长度的方法是 ravel 嵌套的numpy数组,然后如下所示查找长度:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    modelBuilder.ApplyConfiguration(new PersonConfiguration());
    modelBuilder.ApplyConfiguration(new WorkerConfiguration());
}

输出:

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.

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