首页 > 解决方案 > 是否可以对数组进行切片以倒退?

问题描述

我有一组经度值,从 0 到 360,增量为 1。

举个例子:

longitude = np.arange(1,361,1)

print(longitude)


[  1   2   3   4   5   6   7   8   9 ... 360]

有没有办法对经度数组进行切片,以便我只以 1 为增量包含 1:20 和 275:360?

所以值 1 到 20 (1, 2, 3 ...) 和值 275 到 360 (275, 276, 277...)

我试过类似的东西:

test = longitude[1:10:275:360]

但是从python的切片方法来看,它认为它是[start:stop:step size] ...我得到一个错误:

  File "<ipython-input-73-39c4381fa9dd>", line 1
    test = longitude[1:10:275:360]
                             ^
SyntaxError: invalid syntax

我该如何解决这个问题?

标签: pythonarraysnumpyjupyter

解决方案


使用np.r_

 longitude[np.r_[1:10, 275:360]]

输出:

array([  2,   3,   4,   5,   6,   7,   8,   9,  10, 276, 277, 278, 279,
       280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
       293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
       306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
       319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
       332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
       345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
       358, 359, 360])

推荐阅读