我不能为我的生活弄清楚这一点.
我正在尝试删除数组第二轴中的所有其他元素.我在MATLAB中做过这个arr(:,:,2:2:end) = [];
,但是当我尝试在Python中做同样的事情并比较两个输出时,我得到了一个不同的矩阵.
我试过arr = np.delete(arr,np.arange(0,arr.shape[2],2),2)
和arr = arr[:,:,1::2]
,但也似乎来的东西我用MATLAB得到.
示例:
MATLAB
disp(['before: ',str(arr[21,32,11])])
arr(:,:,2:2:end) = [];
disp(['after: ',str(arr[21,32,11])])
Run Code Online (Sandbox Code Playgroud)
输出:
before: 99089
after: 65699
Run Code Online (Sandbox Code Playgroud)
蟒蛇
print 'before: ' + str(arr[20,31,10])
arr = arr[:,:,1::2] # same output as np.delete(arr,np.arange(0,arr.shape[2],2),2)
print 'after: ' + str(arr[20,31,10])
Run Code Online (Sandbox Code Playgroud)
输出:
before: 99089
after: 62360
Run Code Online (Sandbox Code Playgroud)
我希望我不会忽略一些基本的东西.
我从一些非特定来源获悉,使用组合shift()
并且pop()
比使用更快splice()
.我还没有进行基准测试,并且很可能暂时没有,因为我出城了,但这是真的,如果是的话,为什么呢?