Как инвертировать массив numpy с помощью циклов - PullRequest
0 голосов
/ 01 апреля 2020

Учитывая этот массив numpy:

 Input:  nums = np.array([0] * SIZE, dtype=int)
 Output: [ 10  20  30  40  50  60  70  80  90 100]

Мне нужно обратить элементы массива в обратном порядке, используя al oop (без использования команды numpy напрямую). Таким образом, желаемый результат будет: [100, 90, 80, .... 10]
Как вы можете изменить их, используя структуру for или while l oop?

Вот что я ' у нас так далеко.

for i in range(len(arr)-1, -1, -1):
        print(arr[i])

Это напечатает обратный порядок, но как можно сохранить эти элементы обратно в массив в этом обратном порядке?

Я знаю, что numpy имеет встроенные функции для этого, однако я хочу понять это из первого принципального подхода.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020
import numpy as np

nums = np.array([10,20,30,40,50,60,70,80,90,100], dtype=int)
rev = np.zeros(nums.size, dtype=int)
for i in range(nums.size):
    rev[nums.size - (i + 1)] = nums[i]
0 голосов
/ 01 апреля 2020
import numpy as np

nums = np.array([10,20,30,40,50,60,70,80,90,100], dtype=int)
rev = np.zeros(nums.size, dtype=int)
for i in range(nums.size):
    rev[nums.size - (i + 1)] = nums[i]

np.zeros(s, dtype=d) создает массив размером s, заполненный нулями типа d.

В этом случае rev является обращенным массивом, а nums.size совпадает с len(nums)

...