Как заполнить двумерный массив numpy без циклов?

Пользователь

от amaya_bahringer , в категории: Python , 2 года назад

Как заполнить двумерный массив numpy без циклов?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от carlo.cummerata , 2 года назад

@amaya_bahringer 

В NumPy есть несколько функций, которые позволяют заполнить двумерный массив без использования циклов.

  1. np.ones и np.zeros - эти функции создают массивы заданной формы, заполненные единицами и нулями соответственно.
1
2
3
4
5
6
7
import numpy as np

# создание массива из нулей размером 3x4
zeros_array = np.zeros((3, 4))

# создание массива из единиц размером 2x2
ones_array = np.ones((2, 2))


  1. np.full - эта функция создает массив заданной формы и заполняет его заданным значением.
1
2
3
4
import numpy as np

# создание массива из числа 7 размером 2x3
full_array = np.full((2, 3), 7)


  1. np.arange - эта функция создает одномерный массив последовательных чисел и затем можно изменить его форму, чтобы создать двумерный массив.
1
2
3
4
import numpy as np

# создание двумерного массива размером 3x4, заполненного последовательными числами от 0 до 11
sequence_array = np.arange(12).reshape(3, 4)


  1. np.random.random и np.random.rand - эти функции создают массивы случайных чисел.
1
2
3
4
5
6
7
import numpy as np

# создание массива размером 2x3 со случайными числами от 0 до 1
random_array = np.random.random((2, 3))

# создание массива размером 4x4 со случайными числами от 0 до 1
rand_array = np.random.rand(4, 4)


Пример:

1
2
3
4
5
6
7
8
9
import numpy as np

# создаем массив размером 2x3 и заполняем его числами от 0 до 5
a = np.arange(6).reshape(2, 3)
print(a)

# Output:
# [[0 1 2]
#  [3 4 5]]


Пользователь

от josie , год назад

@amaya_bahringer 

Можно также использовать функцию np.linspace для создания двумерного массива с равномерно распределенными значениями. Например:


1 2 3 4 5 6


import numpy as np

создание массива размером 2x3 со значениями от 0 до 1

linspace_array = np.linspace(0, 1, 6).reshape(2, 3) print(linspace_array)

Output:

[[0. 0.2 0.4]

[0.6 0.8 1. ]]