【发布时间】:2020-11-27 21:24:43
【问题描述】:
我有以下 numpy 数组 arr_split:
import numpy as np
arr1 = np.array([[1.,2,3], [4,5,6], [7,8,9]])
arr_split = np.array_split(arr1,
indices_or_sections = 4,
axis = 0)
arr_split
输出:
[array([[1., 2., 3.]]),
array([[4., 5., 6.]]),
array([[7., 8., 9.]]),
array([], shape=(0, 3), dtype=float64)]
如何删除“空”行(例如,在上面,它是最后一行)。数组arr_split 可以有任意数量的“空”行。以上例如。恰好只有一行“空”。
我尝试过使用列表理解,如下所示:
arr_split[[(arr_split[i].shape[0] != 0) for i in range(len(arr_split))]]
但这不起作用,因为列表理解 [(arr_split[i].shape[0] != 0) for i in range(len(arr_split))] 部分返回一个列表,而我实际上只需要将列表中的元素作为索引输入 arr_split[]。
有人知道我该如何解决这个问题,或者有其他方法吗?如果可能,请寻找最简单的方法来执行此操作,而无需太多循环或 if 语句。
【问题讨论】:
标签: python list numpy list-comprehension