要删除多维NumPy数组中零值的行,可以使用以下方法:
方法一:使用布尔索引
import numpy as np
# 创建一个多维NumPy数组
arr = np.array([[1, 2, 3],
[4, 0, 6],
[0, 0, 0],
[7, 8, 9]])
# 使用布尔索引删除零值的行
non_zero_rows = arr[~np.all(arr == 0, axis=1)]
print(non_zero_rows)
输出:
[[1 2 3]
[4 0 6]
[7 8 9]]
方法二:使用np.nonzero()函数
import numpy as np
# 创建一个多维NumPy数组
arr = np.array([[1, 2, 3],
[4, 0, 6],
[0, 0, 0],
[7, 8, 9]])
# 使用np.nonzero()函数获取非零元素的索引
non_zero_indices = np.nonzero(np.any(arr != 0, axis=1))
# 使用索引删除零值的行
non_zero_rows = arr[non_zero_indices]
print(non_zero_rows)
输出:
[[1 2 3]
[4 0 6]
[7 8 9]]
以上两种方法都可以删除多维NumPy数组中零值的行。第一种方法使用布尔索引,通过np.all()函数判断每一行是否全为零,然后使用~运算符取反,得到非零行的布尔索引,最后使用该索引获取非零行。第二种方法使用np.nonzero()函数获取非零元素的索引,然后使用该索引获取非零行。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云