- Python機器學習
- (印)阿布舍克·維賈亞瓦吉亞(Abhishek Vijayvargia)
- 820字
- 2021-02-08 16:52:24
2.1 為什么選擇Python
Python在數據科學家中是非常受歡迎的編程語言。第一,它免費且易學,不必為了小任務而浪費大量注意力;第二,它是面向對象的語言,這也是其被大型開發者社區支持的原因;第三,巨大的開源庫支持。 Python具有相當數量的開源庫,能夠更迅速地實現數據科學和機器學習解決方案,而無須從頭開始編寫每一個算法。像Pandas、 scikit-learn、 SciPy、 NumPy、 Keras這樣的庫對于快速實現機器學習算法非常有用。
首先,通過一個例子了解如何使用編程語言來解決現實世界的問題。
假設舉辦一個聚會。你為每個進入聚會的人分配一個唯一的1~100之間的號碼。現在聚會結束了,你宣布了一個消息。
“會從1~200之間獲取一個隨機數。如果有兩個人的號碼之和與這個數字相等,就會獎勵這兩個人。”
現在了解到,已經向x個人分配了號碼。如何確定能否給其中兩個人獎勵呢?
可以嘗試使用Python來解決這個問題。首先,從列表中獲取輸入數據。
numberList = list([43,23,1,67,54,2,34,56,23,65,12,9,87,4,33])
現在選擇一個隨機數并將其存儲在一個變量中。
sumSelector = raw_input()
為了解決這個問題,必須先對數據進行排序。在Python列表中排序很簡單,可以通過sort函數來完成。
numberList = numberList.sort()
通過上述語句,將排序后的數字賦值給變量。現在使用兩個指針:一個指向開始處(前指針);另一個指向結束處(后指針)。檢查兩指針所指變量的和。如果和小于給定值(意味著當前的總和小于所需的總和),前指針向前移動一步并再次檢查;如果和大于給定值(意味著當前的總和大于所需的總和),將后指針向后移動一步并再次檢查。無論在任何位置,如果當前的總和等于要求的總和,便可以說,存在兩個人的數值之和與給定的數值相同,需要給予獎勵;如果兩個指針相交并且仍然沒有達到所需的總和,則可以聲稱并不存在兩個人的數值之和與給定的數值相等。
以下是完整的解決方案[1]。
def isPrizeGiven(numberList,sumSelector):
sumOfTwo = sumSelector
i=0
j = len(numberList) -1
if(i>=j):
return False
while(i<=j):
currentSum = numberList[i]+numberList[j]
print(i,j,currentSum)
if(currentSum==sumOfTwo):
return True
if(currentSum>sumOfTwo):
j=j-1
else:
i=i+1
return False
為獲得所需答案,必須向函數傳遞排序列表和給定的數值(即兩數值的期望和)。
if (isPrizeGiven(numberList,sumSelector):
print("No Escape. Give Prize to Everyone")
else:
print("You Saved Yourself!!")
即使現在不能理解此代碼,也不要擔心。接下來我們還會對這段代碼進行解析,并介紹程序設計語言的基本原理。
- Java編程指南:基礎知識、類庫應用及案例設計
- Hands-On GPU:Accelerated Computer Vision with OpenCV and CUDA
- 批調度與網絡問題的組合算法
- NetBeans IDE 8 Cookbook
- 51單片機C語言開發教程
- 編寫高質量代碼:改善Objective-C程序的61個建議
- Visual Basic 6.0程序設計實驗教程
- Angular應用程序開發指南
- C陷阱與缺陷
- JavaScript從入門到精通(視頻實戰版)
- 計算機應用基礎(第二版)
- JavaScript Concurrency
- 游戲設計的底層邏輯
- 少兒編程輕松學(全2冊)
- 軟硬件綜合系統軟件需求建模及可靠性綜合試驗、分析、評價技術