用Python實現各類數學符號運算

2021-03-02 老齊教室

翻譯:老齊

與本文相關圖書推薦:《跟老齊學Python:數據分析》

在機器學習項目中,你肯定要在代碼中實現各種運算,其中必然要用到各種數學符號,因此,必須了解並熟知如何實現。

本文列出常用的數學符號及其Python實現方法,一旦用到,就可以直接拷貝。

索引

這個符號用於表示向量中第幾個值。

x = [10, 20, 30]
i = 0
print(x[i]) # 10

還可以拓展到2維向量,乃至更多維度。

x = [ [10, 20, 30], [40, 50, 60] ]
i = 0
j = 1
print(x[i][j]) # 20

求和

這個符號的意思是對某一範圍內的向量中的元素求和,上下標為範圍。它等同於Python中對向量的索引從0到N-1進行循環,注意,如何用前面的符號得到每個值得索引。

x = [1, 2, 3, 4, 5]
result = 0
N = len(x)
for i in range(N):
result = result + x[i]
print(result)

上面的代碼可以用內置函數簡化:

x = [1, 2, 3, 4, 5]
result = sum(x)

PI

這個符號的意思是將向量中指定範圍的元素求乘積(讀作:pi,即字母π的大寫形式),Python中的實現方法就是循環得到元素,然後計算乘積。

x = [1, 2, 3, 4, 5]
result = 1
N = len(x)
for i in range(N):
result = result * x[i]
print(result)

管道符

管道符(鍵盤上的豎線)有多種不同的含義,要具體看它的應用方式。

絕對值

作為絕對值符號,返回該數值的絕對值。

x = 10
y = -20
abs(x) # 10
abs(y) # 20

範數

範數,也稱為向量的模(長),即向量的大小。Python中通過計算數組中每個值的平方和再開方得到。

x = [1, 2, 3]
math.sqrt(x[0]**2 + x[1]**2 + x[2]**2)

Epsilon

這是一個希臘字母(讀如:[ˈepsɪlɑːn]),它用於檢驗某個元素是不是集合的一員,在Python中,用下面的方式實現:

X = {1, 2, 3}
3 in X

函數

這個符號表示函數中的X與Y的對應關係,Python中就是編寫一個函數,X為參數,輸出Y。

def f(X):
Y = ...
return Y

有時候你也會遇到下面的表述方式,用R替代X、Y:

R意味著輸入輸出都是實數,比如整數、浮點數、無理數、有理數等。Python中當然可以表示:

x = 1
y = 2.5
z = math.pi

還有可能遇到下面的形式:

意味著實數組成的d維度向量(譯者注:實數域的d維子空間)。

假設d=2,Python中可以用Numpy提供的函數,例如下面代碼中的求和函數,返回的是一個數值,它實現了的映射

X = [1, 2]
f = np.sum
Y = f(X)

譯者註: 嚴格來講,本文上面的示例不很準確。[[1], [2]],這樣的才是嚴格的2維。

張量轉置

這個符號表示的是行列轉換,Python中用下面方法實現:

X = [[1, 2, 3],
[4, 5, 6]]
np.transpose(X)

輸出結果顯示行列交換了位置。

[[1, 4],
[2, 5],
[3, 6]]

乘法

張量間的乘法,在Python中用np.multiply實現:

x = [[1, 2],
[3, 4]]
y = [[2, 2],
[2, 2]]
z = np.multiply(x, y)

輸出是:

[[2, 4]],
[[6, 8]]

點積

點積的結果是每個序列中對應數字積的和。

X = [1, 2, 3]
Y = [4, 5, 6]
dot = sum([i*j for i, j in zip(X, Y)])
# 1*4 + 2*5 + 3*6
# 32

有帽子的符號

向量上有一個小帽子的符號,表示的是向量中的每個分量除以向量的長度。

x = [1, 2, 3]
length = math.sqrt(sum([e**2 for e in x]))
x_hat = [e/length for e in x]

如此所得向量的大小就是1,並且方向不變。

math.sqrt(sum([e**2 for e in x_hat]))
# 1.0

感嘆號

用感嘆號表示階乘,即從1開始,一直到該數字的所有整數的乘積,在Python中,這樣計算:

x = 5
fact = 1
for i in range(x, 0, -1):
fact = fact * i
print(fact)

也可以用內置模塊中的函數實現:

import math
math.factorial(x)

輸出是:

# 5*4*3*2*1
120

原文連結:https://amitness.com/2019/08/math-for-programmers/

搜索技術問答的公眾號:老齊教室

」★

在公眾號中回覆:老齊,可查看所有文章、書籍、課程。

覺得好看,就點這裡👇👇👇

相關焦點

  • Python編程基礎,數字及數學運算
    小學的數學運算先來小學的數學運算,加減乘除這個比較容易理解,畢竟咱們都是讀過小學的人。這種運算引入兩個運算符號 // 和 %,分別代表 整數除 和 求餘。9//8 =1 得到是除法運算結果小數點前部分整數。9%8 =1 得到是除法運算的餘數。如圖,15÷6=2.5,整數除 // 結果為2,即小數點前整數部分。
  • 數學運算(四)——帶符號整數的運算
    數學運算(一)—— 無符號數加法器數學運算(二)——無符號數乘法器結構數學運算(三)——無符號數除法器
  • 【Python 第53課】 數學運算
    今天從打飛機遊戲裡中斷一下,說些python的基礎。在用計算機編程解決問題的過程中,數學運算是很常用的。python自帶了一些基本的數學運算方法,這節課給大家介紹一二。python的數學運算模塊叫做math,再用之前,你需要import mathmath包裡有兩個常量:math.pi圓周率π:3.141592...
  • Python如何實現超長整數
    但是在用python編碼時,你不必擔心這些「瑣碎」的事情,因為python支持任意大小的整數。在C語言中,當你試圖使用內建的powl函數計算220000時,它會給出inf作為輸出。超長整數運算現在,我們已經對python如何支持和實現任意精度整數有了一個大致的了解,現在是時候了解它們上的各種數學運算是如何發生的了。加法整數是「按數位順序」保存的,這意味著加法和我們在小學學到的一樣簡單,python的原始碼向我們展示了它是如何實現的。
  • 用代碼理解數學符號
    對於任何有興趣從事機器學習和數據科學方面的職業或研究的人來說,總有一天他們會超越python庫,跟隨好奇心進入這一切背後的數學世界。你越深入地理解核心數學,你就越有可能靈光一現地創造出一種新方法。對於已經學習數學多年的任何人,可以將這樣的方程式解析為代碼。但是對於許多其他人來說,這看起來像象形文字。事實是,古代數學領袖似乎似乎選擇了最有趣的外觀符號來描述相當直觀的方法。結果是:方程和變量看起來比實際複雜得多。我發現,代碼不僅可以用來編寫程序,還可以用來解釋複雜的數學語言。
  • 【python勸退指南】小學數學老師喊你回來用python學代數!
    相信各位看一眼應該就已經知道了答案,那麼接下來我們用python來求解這道題        看上去是不是很簡單,這就是python語言的魅力。除了用 * 號代替了 乘號,其餘部分完完全全都是代數的內容。我們可以停下來翻譯一下,把它變成我們熟悉的語言:        回到代碼中去,我們來進一步解析代碼的含義。
  • 什麼是運算符和表達式,在python中是如何處理數學運算的?
    又到了和大家分享的時刻了,初識python,相信很多編程愛好者們對程序的解義在心裡應該有一個概念了吧,對於pycharm的用法與進位的認知,在大家的心裡是否還有印象?前面我們提到了python的核心數據(整數型、浮點型、複數等),那麼大家是否知道,這些數據是用來幹什麼的呢?
  • python教程之python數學運算
    存儲數據變量#兩個變量交換值,通過第三個參數實現print('兩個變量交換值,通過第三個參數實現'); #第一種方法是通過第三個參數實現x=5;#變量賦值y=11; #變量賦值中進行分數(fraction)運算分數運算是python中的一個模塊(module)。
  • Python圈中的符號計算庫-Sympy
    這種數學符號計算。二、什麼是數學符號計算?數學符號計算能處理表徵數字的符號計算。這意味著數學對象被精確地表示,而不是近似地表示,而具有未被計算的變量的數學表達式被留在符號形式中。sympy的表達式與我們平常的手寫的數學表達式略微有所區別,下面是sympy的方程表示符號加號 +減號 -除號 /乘號 *等號 Eq()指數 **對數 log()e的指數次冪 exp()上面的例子我們用Python實現一下。
  • python中的數學運算(二)
    1、python中有一些類似數學集合的運算,如 或、且、非的關係,對應的運算符有 |,&,-等運算符。
  • Python數學運算入門把Python當作計算器
    1、Numbers 用Python做算術運算The interpreter acts as a simple calculator: you can type an expression at it and it will write the value.
  • 慢步學習,二級python,數字類型及其運算
    在Python語言中虛數部分通常用j標識,而不是我們數學中的i。數字類型的運算數字類型數據的最基本的特徵就是,它能進行運算。加減乘除:+ - * / 加減符號和日常使用習慣一致,乘號× 在計算機程式語言中要寫成 星號* ,而 除號÷ 在計算機運算中一般使用 斜杆/ 表示。加減乘除的結果是得到 和、差、積、商。需要注意的是,除法運算得出的商,是一個浮點數,即帶小數點的值。
  • 【數學】用運算符號連算式
    [範例解析]例1 用運算符號把下面式子中的4個3連起來,使等式成立。5 5 5 5 5 = 10 ①分析 我們從①的後邊逐步向前邊考慮,最後一個5前面如果要添運算符號的話,只可能是+、-、×、÷運算符號中的一個。
  • python輕鬆實現極限、微積分計算
    Hello,大家好,以後由我Violet負責python編程類文章的更新,河蟹負責軟體、網站資源等,希望大家多多 點讚/在看 支持,謝謝簡單數學運算使用python自帶數學庫math即可實現,但是對於高等數學中的微積分運算,math庫還是有一定局限性。
  • 數學運算(三)——無符號數除法器
    數學運算(一)—— 無符號數加法器數學運算(二)——無符號數乘法器結構數學運算(三)——無符號數除法器
  • 用python實現遺傳算法
    最近事情比較多,一個月沒有寫公眾號了,但也積累了些不錯的內容可以分享,今天就給大家介紹的是遺傳算法,並用python加以實現。在遺傳算法的學習過程中,在CSDN上看到一篇已有人分享的python代碼,因此直接借鑑過來,並結合《數學建模與數學實驗》進行補充。
  • python運算符總結
    正如運算符,正是因為我們在生活中,總是遇到各種各校的運算問題。python算術運算符加減乘除是最基本的數學規則,python中當然不能忽視。我們通過交互式解釋器來演示。在cmd命令行下,輸入python回車,即可打開交互式窗口。
  • 《數學提高》運算符號包括哪些
    運算符號有如加號(+),減號(-),乘號(×或·),除號(÷或/),兩個集合的併集(∪),交集(∩),根號(√ ̄),對數(log,lg,ln,lb
  • 用代碼了解數學符號
    達文西說:「數學是一切科學的基礎」,數學與代碼之間也有著千絲萬縷的聯繫。似乎任何熱衷於機器學習、數據科學的人都相信,總有一天,他們將研究透徹python庫,暢享裡面的數學知識。大量論文集將展現在你面前,詳細說明其原理。對核心數學的理解越深入,你就越可能獲得靈感,創造新方法。
  • 最全 Python 算法實現資源匯總!
    為了幫助大家在這個假期能提高學習效率,進階 Python 技能,筆者為大家推薦了一份用 Python代碼實現算法的資源帖,涵蓋從入門到高級的各類算法。下文中,筆者首先對項目的整體內容進行了一個歸納,之後為大家選取了幾個內容比較豐富的部分,供大家更高效地使用這一資源。