np.einsum全方位闡述

一、np.einsum簡介

numpy.einsum函數是一個高效且靈活的實現張量轉換的工具,它允許將多個數組合併,重組和排列以生產所需的輸出數組,同時還提供了對應的字母表示方法。einsum的任務是對張量計算進行優化,同時避免給平凡的張量計算增加複雜性,增加對於平凡的張量計算的支持。

二、應用場景

在科學計算領域,einsum的使用非常廣泛,特別是在數學、物理和工程學的計算過程中可以發揮重要的作用,尤其是在處理多個數組的時候einsum幾乎是必用的工具。

einsum專門用於張量的計算,比如對數組進行乘法、取和、矩陣乘法、計算內積和外積等。 和其他張量工具相比,einsum的優勢在於支持對不同字母進行靈活的指定和重組,同時還可以在計算之前對數組進行各種操作,以適應各種計算需求。

三、常用字母符號的解釋

習慣上,einsum使用一種類似於字元串的形式來操作所有的張量計算,根據numpy官方文檔中指定的表示方法,它可以覆蓋絕大部分的張量計算。

  • 省略號(…): 省略了一個或多個完整的索引,等價於所有剩餘位置的求和,通常只出現在輸入數組的末尾。
  • 逗號(,): 連接兩個輸入數組,通常是在兩個數組的末尾分別闡述。
  • 大寫字母: 大寫字母通常用來表示要在輸出中產生的結果數組中的一維的批量處理或者張量的性質,多用於向量空間和矩陣的範疇中。
  • 小寫字母: 小寫字母通常用來指定要在輸入數組中的某個維度上進行處理。

四、使用示例

import numpy as np

a = np.arange(25).reshape(5,5)
b = np.ones((5,5))

# 點積
c = np.einsum('ij,ij->',a,b)
print(c)

# 按列求和
c = np.einsum('ij->j',a)
print(c)

# 矩陣相乘
c = np.einsum('ij,jk->ik',a,b)
print(c)

五、小結

np.einsum作為numpt獨有的函數,已經成為科學計算領域中的一種基本演算法,同時在機器學習的過程中也發揮了重要的作用。對於numpy用戶來說,熟練掌握np.einsum函數的使用是必不可缺的一部分。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300885.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 14:18
下一篇 2024-12-29 14:18

相關推薦

  • Python中的np.arange函數

    在本篇文章中,我們將著眼於Python中的np.arange函數。我們將從多個方面對這個函數進行全面解析,涵蓋的內容包括介紹、功能、用法、案例以及注意事項等。如果您想深入了解np.…

    編程 2025-04-28
  • 深入理解np.diag

    一、介紹 NumPy是一個開源的Python科學計算庫,它支持高維數組和矩陣運算。np.diag是NumPy中的一個函數,可以用來創建對角矩陣、獲取對角線元素、構建對角線數組等。 …

    編程 2025-04-25
  • np.divide函數詳解

    一、簡介 np.divide函數是numpy庫中的一個函數,用於對兩個數組進行逐元素的除法運算。它是一個通用的、基礎的元素級函數,可以對數組中的任何類型進行操作。使用np.divi…

    編程 2025-04-24
  • 一文詳解np.mat函數

    一、np.mat函數是什麼? np.mat函數是一個將數組轉換成矩陣的函數,是numpy中的一個基礎函數。它可以將一個有序的n維數組轉換成一個矩陣,並返回該矩陣的視圖,也就是返回一…

    編程 2025-04-23
  • 深入探索np.linalg.norm函數

    np.linalg.norm是numpy庫中常用的函數之一,用於計算向量或矩陣的範數。在許多數學和物理問題中,範數是一個關鍵的概念,它衡量了向量的長度大小和矩陣的大小。在本文中,我…

    編程 2025-04-23
  • 深入淺出:np.floor

    一、概述 在Python中,numpy模塊是一個強大的數學工具集,提供了許多有用的功能。其中,np.floor是一個常用的函數,它的作用是返回輸入一個小數後向下取整的結果。 imp…

    編程 2025-04-22
  • np.reshape方法詳解

    一、基本介紹 np.reshape()方法是NumPy中的一個關鍵操作,用於重塑數組的尺寸。通過該方法可以改變數組的形狀,維度數量和元素數量不一定會改變。 通常情況下,np.res…

    編程 2025-04-20
  • 科普 | np.tanh的多面向探究

    一、簡介 np.tanh是numpy庫中的一個函數,常被用來處理神經網路中的激活函數,或者數學中的一些複雜計算。tanh即雙曲正切函數。 二、單變數情形 首先,我們看下單變數tan…

    編程 2025-04-18
  • np.partition詳解

    一、快速概述 np.partition是numpy包內的一個函數,功能是對numpy數組進行分割(partition操作),返回排序(或未排序)數組的切割結果。 partition…

    編程 2025-04-12
  • np.random.shuffle詳解

    一、什麼是np.random.shuffle? np.random.shuffle是numpy中的一個函數,可以對序列隨機進行重排。 該函數採用的是打亂序列的方法,也就是根據序列本…

    編程 2025-04-12

發表回復

登錄後才能評論