Давайте перечислим все методы, присутствующие в Python, чтобы найти сумму квадратов NumPy. Рассмотрим их один за другим, используя несколько наглядных примеров.

Содержание

Метод 1: с использованием вложенных циклов for

  • Этот метод использует вложенные циклы for для перебора элементов массива NumPy в Python.
  • Он вычисляет квадрат каждого элемента и добавляет его в переменную.
  • Этот процесс продолжается до тех пор, пока не будут обработаны все элементы массива NumPy в Python.

Случай 1: с использованием вложенных циклов for

Цикл for инициируется для перебора каждого числа, хранящегося в одномерном массиве. И каждое число из массива возводится в квадрат (num**2). Затем квадрат числа добавляется с помощью оператора +=.

import numpy as np

data_1d = np.array([1, 2, 3, 4, 5])
sum_of_squares = 0
for num in data_1d:
    sum_of_squares += num**2
print("Sum of squares:", sum_of_squares)

Выход:

Sum of squares: 55

Скриншот вывода:

Метод 1: с использованием вложенных циклов for

Случай 2: сумма квадратов для двумерного массива

import numpy as np
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum_of_squares = 0
for row in data_2d:
    for num in row:
        sum_of_squares += num**2
print("Sum of squares:", sum_of_squares)

Вывод: реализация приведенного выше кода приведена ниже.

Sum of squares: 285

Случай 2: сумма квадратов для двумерного массива 

Случай 3: для трехмерного массива

import numpy as np
data_3d = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                   [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                   [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
sum_of_squares = 0
for matrix in data_3d:
    for row in matrix:
        for num in row:
            sum_of_squares += num**2
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 6930

Трехмерный массив Python numpy sum

Таким образом, мы можем использовать вложенные циклы for с оператором ** и оператором += для суммы квадратов NumPy в Python.

Метод 2: с использованием Square() и sum()

  • В этом методе мы сначала используем np.square() для возведения в квадрат всех элементов массива NumPy, создавая новый массив с возведенными в квадрат значениями в Python.
  • Затем мы используем np.sum() для вычисления суммы всех квадратов значений в новом массиве в библиотеке Python NumPy.
  • Результат сохраняется в переменной.

Случай 1: для одномерного массива

import numpy as np
data_1d = np.array([1, 2, 3, 4, 5])
sum_of_squares = np.sum(np.square(data_1d))
print("Sum of squares:", sum_of_squares)

Результат: реализация кода суммы квадратов NumPy на Python для одномерного массива.

Sum of squares: 55

Случай 1: для одномерного массива

Случай 2: для 2D-массива

import numpy as np
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum_of_squares = np.sum(np.square(data_2d))
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 285

Случай 2: для 2D-массива

Случай 3: для трехмерного массива

import numpy as np
data_3d = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                   [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                   [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
sum_of_squares = np.sum(np.square(data_3d))
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 6930

Случай 3: для трехмерного массива

Метод 3: с использованием power() с функцией sum()

  • Здесь мы будем использовать функцию numpy.power() для возведения каждого элемента массива в Python в степень 2, эффективно возводя каждое число в квадрат.
  • Эта операция преобразует исходный массив в новый массив NumPy в Python, где каждый элемент представляет собой квадрат своего исходного значения.
  • Затем мы берем этот новый массив квадратов значений NumPy и вычисляем его сумму с помощью функции numpy.sum(), которая складывает все значения в массиве, получая общую сумму квадратов исходного массива в Python.

Случай 1: 1D-массив в сумме квадратов

import numpy as np

array = np.array([1, 2, 3, 4])
sum_of_squares = np.sum(np.power(array, 2))
print("Sum of Squares:", sum_of_squares)

Вывод:

Sum of Squares: 30

Случай 1: 1D-массив в сумме квадратов 

Случай 2: 2D-массив в сумме квадратов

import numpy as np
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
sum_of_squares_2d = np.sum(np.power(array_2d, 2))
print("Sum of Squares of 2D Array:", sum_of_squares_2d)

Вывод:

Sum of Squares of 2D Array: 91

Случай 2: 2D-массив в сумме квадратов 

Случай 3: 3D-массив

import numpy as np
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
sum_of_squares = np.sum(np.power(array_3d, 2))
print("Sum of Squares:", sum_of_squares)

Вывод:

Sum of Squares: 204

Случай 3: 3D-массив 

Метод 4: с использованием point()

  • Здесь мы выравниваем массив в NumPy Python, используя array.flatten() для создания массива в Python.
  • Затем мы используем np.dot() для вычисления скалярного произведения сглаженного массива в Python на самого себя.
  • Скалярное произведение по существу вычисляет сумму квадратов элементов сглаженного массива в Python.

Случай 1: для одномерного массива

import numpy as np

data_1d = np.array([1, 2, 3, 4, 5])
sum_of_squares = np.dot(data_1d, data_1d)
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 55

Случай 1: для одномерного массива

Случай 2: для 2D-массива

import numpy as np
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum_of_squares = np.dot(data_2d.flatten(), data_2d.flatten())
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 285

Случай 2: для 2D-массива

Случай 3: для 3D-массива

import numpy as np
data_3d = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                   [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                   [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
sum_of_squares = np.dot(data_3d.flatten(), data_3d.flatten())
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 6930

Случай 3: для 3D-массива

Метод 5: с помощью функции einsum()

  • np.einsum() — мощная функция, которая может выполнять различные операции с массивами в Python.
  • В этом методе мы используем np.einsum() с обозначением «ijk,ijk» для вычисления суммы квадратов в NumPy Python.
  • Обозначение «ijk» указывает, что мы умножаем соответствующие элементы в массиве NumPy, а затем суммируем их с помощью Python.

Случай 1: для одномерного массива

import numpy as np

data_1d = np.array([1, 2, 3, 4, 5])
sum_of_squares = np.einsum('i,i', data_1d, data_1d)
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 55

Случай 1: для одномерного массива

Случай 2: для двумерного массива

import numpy as np
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum_of_squares = np.einsum('ij,ij', data_2d, data_2d)
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 285

Случай 2: для двумерного массива

Случай 3: для трехмерного массива

import numpy as np
data_3d = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                   [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                   [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
sum_of_squares = np.einsum('ijk,ijk', data_3d, data_3d)
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 6930

Случай 3: для трехмерного массива

Метод 6: с использованием функции linalg()

  • Сначала мы выравниваем массив NumPy, используя array.flatten(), чтобы создать массив в Python.
  • Затем мы используем np.linalg.norm() в библиотеке NumPy для расчета нормы L2(евклидовой нормы) сглаженного массива в Python.
  • Возведение в квадрат нормы L2 дает нам сумму квадратов элементов сплющенного массива.

Случай 1: для одномерного массива

import numpy as np

data_1d = np.array([1, 2, 3, 4, 5])
sum_of_squares = np.linalg.norm(data_1d)**2
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 55.0

Случай 1: для одномерного массива 

Случай 2: NumPy суммирует квадрат чисел двумерного массива

import numpy as np
data_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
sum_of_squares = np.linalg.norm(data_2d.flatten())**2
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 285.00000000000006

Случай 2: NumPy суммирует квадрат чисел двумерного массива 

Случай 3: в 3D-массиве

import numpy as np
data_3d = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                   [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
                   [[19, 20, 21], [22, 23, 24], [25, 26, 27]]])
sum_of_squares = np.linalg.norm(data_3d.flatten())**2
print("Sum of squares:", sum_of_squares)

Вывод:

Sum of squares: 6929.999999999999

Случай 3: в 3D-массиве 

Добавить комментарий