python - 在 numpy 中获取互补切片的最简洁方法
问题描述
给出numpy.array
切片补码的最简洁(紧凑)方式是什么?与之前的帖子相反,我没有考虑速度,而是考虑了易用性/可读性/通用性。
以数组为例A=np.array([1,2,3,4,5,6])
。我正在寻找 的补码A[start:stop]
,例如,A[2:4]
它的补码是"comp of A[2:4]"=array([1,2,3,6])
。我正在寻找一种无论内容类型如何都有效的解决方案。所以 A 还可以包含数组 str ,理想情况下,原则上可以是正常 [start:stop] 切片操作也适用的任何维度。
在不声称一般性的情况下,这是我目前使用的:
def comp(A,start,stop):
if A.ndim == 1:
out = np.hstack((A[0:start],A[stop:]))
else:
out = np.vstack((A[0:start],A[stop:]))
return out
解决方案
np.r_
这是生成这些索引然后索引到输入数组的一种简洁方法-
A[np.r_[:start,stop:len(A)]]
推荐阅读
- wordpress - 如何在 woocommerce 中的自定义注册表单上获取所有错误消息
- compilation - SystemVerilog:always_comb 构造不会推断出纯粹的组合逻辑
- html - CSS媒体查询使用多个使用和逻辑运算符未按预期工作
- javascript - 如何添加 setState 方法的属性类型
- api - 来自反应导航的 useFocusEffect() 不总是调用我的 API
- bash - 为什么带有 -c 选项的 grep 总是在 ssh 上显示 0
- codeigniter - 带和不带参数的 Codeigniter 3 路由
- python - 按多列上的匹配排序(并具有多个条件)
- java - 无法返回数组并在其他方法中使用
- javascript - 在 React Js 中使用“this”