Рубрики
Без рубрики

Изучение функции numpy.ones в Python | np.ones

Функция numpy.ones() в Python возвращает массив, заполненный единицами, снабженными пользовательскими формами, типом данных и порядком.

Автор оригинала: Team Python Pool.

Изучение функции numpy.ones в Python | np.ones

При выполнении какого-то проекта, требующего математических операций и вычислений, мы используем библиотеку numpy. В numpy у нас есть массивы NumPy, которые облегчают сложные математические и другие типы операций с большим количеством данных. Иногда нам нужно, чтобы наши массивы были заполнены только теми, которые входят в игру numpy.ones.

<Короче говоря, функция numpy.ones возвращает новый массив numpy, заполненный всеми единицами.

Нужда в numpy.ones

Большинство из вас пришли к этой статье, чтобы узнать, как использовать numpy.ones в python. Итак, я думаю, что вы все довольно много знаете о математике, поскольку numpy-это в основном математические операции с большими данными. Нам часто приходится заполнять нашу матрицу всеми единицами во время матричных операций в математике. Чтобы достичь этого в программировании на python без десятков строк кода, у нас есть специальная функция , присутствующая в библиотеке numpy. Эта функция поможет нам достичь нашей цели, создав идентификационную матрицу всего в двух строках. Эта функция называется numpy.ones().

Теперь я думаю, что вы, возможно, знаете важность функции numpy.ones (). Давайте посмотрим, как мы можем использовать и внедрять его в наши проекты.

Синтаксис np.ones

numpy.ones(shape,,,)

Параметры

Параметр Обязательный/Необязательный Описание
форма обязательный Форма нового массива ex. (3, 2)
dtype необязательный Тип данных массива по умолчанию float
приказ необязательный Это дает нам свободу хранить многомерный массив в порядке строки-мажора (стиль C) или столбца-мажора (стиль Fortran) в памяти. По умолчанию это C (по строкам).
любить необязательный Экспериментальная характеристика в ожидании принятия НЭПА 35.

Возвращать

out: ndarray

функция numpy.ones() возвращает массив единиц с заданной формой, dtype и порядком.

Давайте рассмотрим работу функции numpy.ones() на нескольких качественных примерах.

Пример 1: Создание одномерного массива с помощью numpy.ones

import numpy as np
.ones(5)
print(one_d)

Выход:

[1. 1. 1. 1. 1.]

Объяснение:

В приведенном выше примере мы создали 1-d массив со всеми единицами в нем. Пример довольно прост. Во-первых, мы импортировали массив numpy как np. После этого мы непосредственно использовали функцию np.ones() для создания массива и передали ей параметр ‘5’. Таким образом, мы получим массив, в котором есть 5 элементов, и все они равны 1.

Примечание: Элементы имеют тип данных по умолчанию как float. Вот почему мы получаем 1. в массиве.

Пример 2: Создание двумерного массива с np.ones

import numpy as np
.ones((3, 5))
print(two_d)

Выход:

[[1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]
 [1. 1. 1. 1. 1.]]

Объяснение:

В примере 2 мы создали 2D-массив со всеми единицами с функцией numpy.ones. Этот пример очень похож на первый, который мы видели. Единственное различие здесь-это форма массива, так как нам нужно создать 2D-массив со всеми единицами в нем. Таким образом, мы позиционировали параметр np.ones как ‘(3, 5)’. Здесь количество строк будет равно 3, а количество столбцов-5.

Пример 2: Создание трехмерного (3D) массива с np.ones

import numpy as np
.ones((3, 5, 7))
print(three_d)

Выход:

[[[1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]]

 [[1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]]

 [[1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]
  [1. 1. 1. 1. 1. 1. 1.]]]

Объяснение:

Мы также можем создать 3D-массив со всеми единицами, используя функцию np.ones() в Python. Эти шаги очень похожи на первые два примера. Единственное различие заключается в параметре формы функции ones() . Здесь в аргументе shape мы поместили три значения, потому что нам нужно построить 3D-массив со всеми единицами в нем.

Здесь также мы не объявили параметр d-type. Таким образом, по умолчанию мы получим значение float в нашем результате.

Состоит из массива с различными типами данных с использованием метода numpy.ones()

В этом разделе урока мы рассмотрим, как можно создавать массивы, состоящие из всех массивов, имеющих разные типы данных. D-тип или тип данных метода numpy.ones может быть int, float, string и т. Д. Поэтому, не тратя больше времени, давайте сразу перейдем к примерам.

1. Создание массива с целочисленным типом данных с использованием np.ones()

import numpy as np
.ones((3, 5),)
print(array_int)

Выход:

[[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]

Объяснение:

В приведенном выше примере мы создали весь массив numpy с типом данных integer. Пример довольно прост. Но для начинающих, позвольте мне кратко объяснить это. Здесь мы импортировали массив numpy как функцию np.one(), доступную в библиотеке numpy. Мы уже видели работу numpy.ones() единственная дополнительная вещь, которую мы сделали здесь,-это добавление параметра d-типа. Мы сделали тип данных целочисленным. Таким образом, вы можете видеть вывод примера, который имеет тип integer, а не float.

2. Создание массива с типом данных string С помощью numpy.ones()

import numpy as np
.ones((3, 5),)
print(array_str)

Выход:

[['1' '1' '1' '1' '1']
 ['1' '1' '1' '1' '1']
 ['1' '1' '1' '1' '1']]

Объяснение:

Итак, в этом случае мы сгенерировали 2d массив numpy, заполненный всеми единицами, и тип данных этих массивов – string.Этот пример идентичен предыдущему. Здесь единственное изменение заключается в том, что вместо целого числа мы использовали ‘str’ в качестве аргумента в функции. Следовательно, мы получим массив numpy со строковым типом данных.

3. Включение массива со смешанным типом данных в виде кортежей с использованием numpy.ones()

import numpy as np
.ones((3, 5), dtype=[('x', 'int'), ('y', 'float')])
print(array_tuple)

Выход:

[[(1, 1.) (1, 1.) (1, 1.) (1, 1.) (1, 1.)]
 [(1, 1.) (1, 1.) (1, 1.) (1, 1.) (1, 1.)]
 [(1, 1.) (1, 1.) (1, 1.) (1, 1.) (1, 1.)]]

Объяснение:

Мы можем указать элементы массива как кортеж и указать их типы данных.

Работа с параметром порядка функции numpy.ones

import numpy as np
import time

dimension = [2000, 2000]
.ones(dimension,).ones(dimension,)

print("We're performing an column operation on both the arrays to check the performance.")
.time()
np.cumsum(cstyle,)
print("Time taken to perform column operation on C-style - ", time.time()-start)
.time()
np.cumsum(fortranstyle,)
print("Time taken to perform column operation on Fortran-style - ", time.time()-start)

print("\nWe're performing an row operation on both the arrays to check the performance.")
.time()
np.cumsum(cstyle,)
print("Time taken to perform row operation on C-style - ", time.time()-start)
.time()
np.cumsum(fortranstyle,)
print("Time taken to perform row operation on Fortran-style - ", time.time()-start)

Выход:

We're performing an column operation on both the arrays to check the performance.
Time taken to perform column operation on C-style -  0.07280611991882324
Time taken to perform column operation on Fortran-style -  
0.028921842575073242

We're performing an row operation on both the arrays to check the performance.
Time taken to perform row operation on C-style -  0.026929855346679688
Time taken to perform row operation on Fortran-style -  0.0718083381652832

Объяснение:

Поскольку нет элементарной разницы между типом C и типом Fortran, нам нужно использовать операции для проверки этой разницы. В этом случае мы будем использовать np.cumsum() для вычисления суммы по операциям строк и по операциям столбцов. Затем мы проверим операции над обоими типами массивов и сделаем вывод.

Сначала мы объявили два массива numpy ones, используя различные параметры порядка. Затем мы будем использовать класс таймера python time.time (), чтобы получить время, затраченное на каждую операцию. time.time() – start даст нам точное количество времени, затраченного на операцию строки/столбца в np.cumsum().

Из выходных данных мы можем проверить, что операции со столбцами выполняются быстрее в массиве типа Fortran, а операции со строками-быстрее в типе C. Аналогично, мы можем использовать этот параметр порядка, чтобы сделать наши вычисления быстрее, если мы заранее знаем операции.

Numpy.ones Vs. Numpy.ones_like

Выход [[1 1 1 1][1 1 1 1][1 1 1 1]]
Синтаксис numpy.ones(форма,,) numpy.ones_like(a,,,,)
Возвращается Возвращает новый массив заданной формы и типа, заполненный единицами. Возвращает массив единиц той же формы и типа, что и данный массив.
Пример импорт numpy как)) import numpy as.random.rand(4,5)print(two_d)print(np.ones_like(two_d,int))
Выход [[1 1 1 1][1 1 1 1][1 1 1 1]] [[0.04153551 0.65643199 0.32287169 0.60656863 0.52434272][0.58110881 0.47309099 0.38251042 0.86157837 0.22099276][0.60140397 0.62901982 0.51812488 0.0887905 0.78431815][0.85056633 0.93509825 0.20018143 0.06351918 0.40621227]][[1 1 1 1 1][1 1 1 1 1][1 1 1 1 1][1 1 1 1 1]]

Резюме:

В этой статье мы узнали, как создать массив 1D, 2D и 3D numpy заданных форм и заполненных ими. Мы также видели, как мы можем играть с различными типами данных в функции numpy.ones и выбирать лучшее в соответствии с нашими потребностями. После этого мы узнали, как мы можем работать с недооцененным и типичным параметром ‘order’. Наконец, мы обладаем разницей между np.ones и numpy.ones_like.

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!