在numpy数组中切片

时间:2015-10-18 18:02:34

标签: python numpy

我看到了一段代码如下:

a = np.zeros((10,10,10))
b = a[:,:,::-1]

b与a相同。切片的目的是什么?

1 个答案:

答案 0 :(得分:0)

使用如此小的代码示例无法明确回答“目的是什么”。这是我的猜测:

在代码段之后,ab是不同的视图到同一个数据数组中。因为Python通过引用传递对象,所以如果将值赋给{{1 }},这些相同的值出现在b中,但最后一个索引被反转。如果您有数据集和函数,但想要处理数据,就好像最后一个数据索引被反转一样,那么将a而不是b传递到该函数中会有效地运行a ,但最终指数反转。

重点是:您可以通过操作a的内容来操纵a的内容,但操作顺序在最后一个轴上相反。

例如,在最后一个索引上按升序排序b实际上会在最后一个索引上按降序排序b。这是一个简化的例子:

a

a = np.rand(4, 2) a[:, 0] = [4, 2, 1, 3] b = a[::-1, :] 第一列未排序,a具有相反的相同数据。

b

现在,b.sort(axis=0) 的内容按第一列的升序排序,b的内容按第一列排序,但按降序排列。

相关问题