欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

六行python代碼的愛心曲線詳解

 更新時間:2019年05月17日 09:12:59   作者:半吊子全棧工匠  
這篇文章主要介紹了六行python代碼的愛心曲線詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前些日子在做績效體系的時候,遇到了一件囧事,居然忘記怎樣在Excel上擬合正態(tài)分布了,盡管在第二天重新拾起了Excel中那幾個常見的函數(shù)和圖像的做法,還是十分的慚愧。實際上,當(dāng)時有效偏頗了,忽略了問題的本質(zhì),解決數(shù)據(jù)分析和可視化問題,其實也是Python的拿手好戲。

例如,畫出指定區(qū)間的一個多項式函數(shù):


Python 代碼如下:

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-4, 4, 1024)
Y = .25 * (X + 4.) * (X + 1.) * (X - 2.)
plt.title('$f(x)=\\frac{1}{4}(x+4)(x+1)(x-2)$')
plt.plot(X, Y, c = 'g')
plt.show()

通過numpy的linspace方法來確定橫坐標(biāo)x的取值范圍,列出方程,然后調(diào)用matplotlib的pyplot畫出函數(shù)曲線即可。numpy 是一個用python實現(xiàn)的科學(xué)計算包,包括一個強(qiáng)大的N維數(shù)組對象Array和成熟的函數(shù)庫,有用于整合C/C++和Fortran代碼的工具包,提供了實用的線性代數(shù)、傅里葉變換和隨機(jī)數(shù)生成函數(shù)等工具,可以理解成Matlab。

記得中學(xué)的時候,我問老師三角函數(shù)到底有啥用?(無知者無畏)老師反問我,“如果給了你一塊洋鐵,怎樣才能剪出煤爐煙囪的拐彎呢?”,現(xiàn)在仍然記得老師的這個例子,哪些看似抽象的數(shù)學(xué)公式,實際上是自己不知道她們的應(yīng)用場景而已。 


Python代碼如下:

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(0, 2 * np.pi, 100)
YSinValues = np.sin(X)
YCosValues = np.cos(X)
plt.plot(X, YSinValues)
plt.plot(X, YCosValues)
plt.show()

Matplotlib 是一個 Python 的 2D繪圖庫,甚至可以生成出版質(zhì)量級別的圖形。

對于那些正態(tài)分布而言,Python 畫起來也就相當(dāng)簡單了:

import numpy as np
import matplotlib.pyplot as plt
def pdf(X, mu, sigma):
    a = 1. / (sigma * np.sqrt(2. * np.pi))
    b = -1. / (2. * sigma ** 2)
    return a * np.exp(b * (X - mu) ** 2)
X = np.linspace(-6, 6, 1000)
for i in range(3):
    samples = np.random.standard_normal(10)
    mu, sigma = np.mean(samples), np.std(samples)
    plt.plot(X, pdf(X, mu, sigma), color = '.66')
plt.plot(X, pdf(X, 0., 1.), color = 'b')
plt.show()

為了不顯得單調(diào),這里多畫了幾條曲線。只要算出方差和均值,從excel中讀出哪些數(shù)值就可以擬合正態(tài)分布了。


回歸到主題,關(guān)于愛心線,有這樣一個凄美的愛情故事。

邇來流浪于吳越,一片閑云空皎潔。

300多年前,斯德哥爾摩的街頭,落魄的笛卡爾過著乞討的生活,全部的財產(chǎn)破破爛爛的衣服和隨身所帶的幾本數(shù)學(xué)書籍。清高的笛卡爾沒有開口請求路人施舍,只是默默地低頭在紙上寫寫畫畫,潛心于他的數(shù)學(xué)世界。 一個寧靜的午后,笛卡爾照例坐在街頭的陽光中研究數(shù)學(xué)問題,身邊過往的人群,喧鬧的車馬隊伍,都無法對他造成干擾。

有美一人,婉如清揚(yáng)。邂逅相遇,與子偕臧。 

“你在干什么呢?”扭過頭,笛卡爾看到一張年輕秀麗的瞼龐,一雙清澈的眼睛如湛藍(lán)的湖水,楚楚動人,她就是瑞典的小公主,國王最寵愛的女兒克里斯汀。 她蹲下身,拿過笛卡爾的數(shù)學(xué)書和草稿紙,和他交談起來。言談中,他發(fā)現(xiàn),這個小女孩思維敏捷,對數(shù)學(xué)有著濃厚的興趣。 

幾天后,笛卡爾意外地接到通知,國王聘請他做小公主的數(shù)學(xué)老師。滿心疑惑的笛卡爾跟隨侍衛(wèi)一起來到皇宮,他聽到了從遠(yuǎn)處傳來的銀鈴般的笑聲。他看到了那天在街頭偶遇的女孩子,從此,他當(dāng)上了公主的數(shù)學(xué)老師。   

情不知所起,一往而深

公主的數(shù)學(xué)在笛卡爾的悉心指導(dǎo)下突飛猛進(jìn),他們之間也開始變得親密起來。笛卡爾向她介紹了直角坐標(biāo)系,代數(shù)與幾何可以結(jié)合起來,也就是日后笛卡爾創(chuàng)立的解析幾何學(xué)雛形。 在笛卡爾的帶領(lǐng)下,克里斯汀走進(jìn)了奇妙的坐標(biāo)世界,她對曲線著了迷。每天的形影不離也使他們彼此產(chǎn)生了愛慕之心。   

在瑞典這個浪漫的國度里,一段純粹而美好的愛情悄然萌發(fā)。   

念去去,千里煙波,暮靄沉沉楚天闊。

他們的戀情傳到了國王的耳中,國王大怒,下令將笛卡爾處死。在克里斯汀的苦苦哀求下,國王將他放逐回國,公主被軟禁在宮中。   

當(dāng)時,歐洲大陸正在流行黑死病。笛卡爾回到法國后不久,便染上重病。在生命進(jìn)入倒計時的那段日子,他日夜思念的還是街頭偶遇的那張溫暖笑臉。他每天堅持給她寫信,盼望著她的回音。然而,這些信都被國王攔截下來,公主一直沒有收到他的任何消息。   

欲知心里事,看取腹中書. 

在笛卡爾給克里斯汀寄出第十三封信后,他永遠(yuǎn)地離開了這個世界。此時,被軟禁在宮中的小公主依然徘徊在皇宮的走廊里,思念著遠(yuǎn)方的情人。    
這最后一封信上沒有寫一句話,只有一個方程:r=a(1-sinθ)。   
國王以為這個方程里隱藏著兩個人的秘密,便把全城的數(shù)學(xué)家召集到皇宮,但是沒有人能解開這個函數(shù)式。他不忍看著心愛的女兒每天悶悶不樂,便把這封信給了她。拿到信的克里斯汀欣喜若狂,她立即明白了戀人的意圖,找來紙和筆,把圖形畫了出來,一顆心形圖案出現(xiàn)在眼前,克里斯汀淚流滿面,這條曲線就是著名的“心形線”。   

國王去世后,克里斯汀繼承王位,便立刻派人去法國尋找心上人的下落,收到的卻是笛卡爾去世的消息,留下了一個永遠(yuǎn)的遺憾……   這封享譽(yù)世界的另類情書,據(jù)說至今還保存在歐洲笛卡爾的紀(jì)念館里。

這個故事的出處無從知道,網(wǎng)絡(luò)上流傳著各種各樣的版本,甚至在百度百科也有著這個故事。后來,有人考證了真實性,認(rèn)為這是一個美麗的謊言,但并不妨礙人們對愛心線喜愛。

在直角坐標(biāo)系中,愛心線的方程的python 表達(dá)為:x** 2+ y** 2 + a * x= a * sqrt(x** 2+y** 2) 和 x** 2+ y** 2 - a * x= a * sqrt(x** 2+y** 2)通過x 來求對應(yīng)的y值很麻煩,就像軟件設(shè)計中的“萬能層”那樣,可以采用參數(shù)方程來表示:

x=a*(2*cos(t)-cos(2*t))
y=a*(2*sin(t)-sin(2*t))

具體的python代碼如下:

import numpy as np
import matplotlib.pyplot as plt
a = 1
t = np.linspace(0 , 2 * np.pi, 1024)
X = a*(2*np.cos(t)-np.cos(2*t))
Y = a*(2*np.sin(t)-np.sin(2*t))
plt.plot(Y, X,color='r')
plt.show()

代表愛心的心形線來了:


但這不是六行代碼呀?也不是r=a(1-sinθ)呀? 的確如此,那是極坐標(biāo)系,python 的matplotlib同樣支持極坐標(biāo)系的,愛心線的六行pyton代碼如下:

import numpy as np
import matplotlib.pyplot as plt
T = np.linspace(0 , 2 * np.pi, 1024)
plt.axes(polar = True)
plt.plot(T, 1. - np.sin(T),color="r")
plt.show()

這樣,得到的就是封面中的圖像了:


心形線確實是愛心滿滿,如果融入了憂傷會是怎樣呢?

import numpy as np
import matplotlib.pyplot as plt
 
x = np.linspace(-8 , 8, 1024)
y1 = 0.618*np.abs(x) - 0.8* np.sqrt(64-x**2)
y2 = 0.618*np.abs(x) + 0.8* np.sqrt(64-x**2) 
plt.plot(x, y1, color = 'r')
plt.plot(x, y2, color = 'r')
plt.show()

這樣就得到了另一個愛心線: 


網(wǎng)絡(luò)上還有關(guān)于愛心線的各種漂亮實現(xiàn),也充滿了各種各樣的情緒,但對于每一種,基本上都可以用python 相對簡潔的實現(xiàn)。

實際上,繪圖很簡單,難的是那些曲線方程的表達(dá)以及實際的應(yīng)用場景需求,比如螺旋線。


進(jìn)一步,還可以畫出各種的3維視圖,例如: 


作為數(shù)據(jù)分析乃至大數(shù)據(jù)處理的最后一個環(huán)節(jié),就是所謂洞見的可視化,python 可以說是其中的一個簡單實用的工具。

參考閱讀

http://matplotlib.org/

以上所述是小編給大家介紹的六行python代碼的愛心曲線詳解詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Python爬蟲教程知識點(diǎn)總結(jié)

    Python爬蟲教程知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Python爬蟲教程知識點(diǎn)總結(jié),有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-10-10
  • 使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試的實現(xiàn)

    使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試的實現(xiàn)

    這篇文章主要介紹了使用PyCharm進(jìn)行遠(yuǎn)程開發(fā)和調(diào)試的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python使用pipeline批量讀寫redis的方法

    python使用pipeline批量讀寫redis的方法

    今天小編就為大家分享一篇python使用pipeline批量讀寫redis的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 在Python中居然可以定義兩個同名通參數(shù)的函數(shù)

    在Python中居然可以定義兩個同名通參數(shù)的函數(shù)

    今天小編就為大家分享一篇在Python中居然可以定義兩個同名通參數(shù)的函數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解Python修復(fù)遙感影像條帶的兩種方式

    詳解Python修復(fù)遙感影像條帶的兩種方式

    這篇文章主要介紹了詳解Python修復(fù)遙感影像條帶的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python運(yùn)行其他程序的實現(xiàn)方法

    python運(yùn)行其他程序的實現(xiàn)方法

    這篇文章主要介紹了python運(yùn)行其他程序的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Python中copy和deepcopy的使用分析

    Python中copy和deepcopy的使用分析

    這篇文章主要介紹了Python中copy和deepcopy的使用,淺拷貝等于賦值,也可以通過copy實現(xiàn),copy僅拷貝對象本身,deepcopy是真正意義上的復(fù)制,深拷貝,被復(fù)制對象完全復(fù)制一遍作為獨(dú)立的新個體,新開辟一塊空間,需要詳細(xì)了解的朋友可以參考下
    2021-10-10
  • python基礎(chǔ)之定義類和對象詳解

    python基礎(chǔ)之定義類和對象詳解

    這篇文章主要為大家詳細(xì)介紹了python的定義類和對象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • GitHub?AI編程工具copilot在Pycharm的應(yīng)用

    GitHub?AI編程工具copilot在Pycharm的應(yīng)用

    最近聽說github出了一種最新的插件叫做copilot,這篇文章主要給大家介紹了關(guān)于GitHub?AI編程工具copilot在Pycharm的應(yīng)用,目前感覺確實不錯,建議大家也去使用,需要的朋友可以參考下
    2022-04-04
  • Python測試框架:pytest學(xué)習(xí)筆記

    Python測試框架:pytest學(xué)習(xí)筆記

    這篇文章主要介紹了Python測試框架:pytest的相關(guān)資料,幫助大家更好的利用python進(jìn)行單元測試,感興趣的朋友可以了解下
    2020-10-10

最新評論