如果同一索引的第三个 np.array 的元素为零,如何从另一个 np.array 创建一个 np.array?
How to create an np.array from another np.array if the element of a third np.array of the same index is zero?
假设我有
a = np.array([0, 1, 3, 0])
b = np.array([[4,5],[7,8],[9,5],[8,2]])
如何创建第三个数组
c = [[4,5],[8,2]]
具有list
理解力?
c = np.array([b[i] for i in range(len(b)) if a[i] == 0])
请注意,最好(也是最快)的方法是不使用列表理解,而是使用布尔索引:
c = b[a==0]
如果你想使用列表理解,除了,你可以使用zip
,这在你必须同时经历多个迭代时很有用(在这种情况下, a
和 b
):
c = np.array([b_d for (b_d, a_d) in zip(b, a) if a_d == 0])
当您想遍历元素并获取每个元素的索引时,enumerate
比 range(len(iterable))
更干净(尽管不一定更快):
c = np.array([b_d for i,b_d in enumerate(b) if a[i] == 0])
假设我有
a = np.array([0, 1, 3, 0])
b = np.array([[4,5],[7,8],[9,5],[8,2]])
如何创建第三个数组
c = [[4,5],[8,2]]
具有list
理解力?
c = np.array([b[i] for i in range(len(b)) if a[i] == 0])
请注意,最好(也是最快)的方法是不使用列表理解,而是使用布尔索引:
c = b[a==0]
如果你想使用列表理解,除了zip
,这在你必须同时经历多个迭代时很有用(在这种情况下, a
和 b
):
c = np.array([b_d for (b_d, a_d) in zip(b, a) if a_d == 0])
当您想遍历元素并获取每个元素的索引时,enumerate
比 range(len(iterable))
更干净(尽管不一定更快):
c = np.array([b_d for i,b_d in enumerate(b) if a[i] == 0])