日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 循环添加array_Python的备忘细节小抄

發布時間:2025/3/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 循环添加array_Python的备忘细节小抄 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近無論是自己寫程序還是看別人的開源程序,經常發現自己遺忘一些基本的Python知識,還得到網上查。遂抽出兩天時間,復習(yu xi)python,把自己老容易忘掉的知識點總結成這個小抄的形式~


畫圖 Plot與Matplotlib 基礎

Python提供了一個很像MATLAB的繪圖接口。

from numpy import array from matplotlib.pyplot import plot a = array([1, 2, 3, 4, 5, 6, 7, 8]) plot(a, a**2)

plot(y)

plot(x, y) plot(x, y, format_string)
只給定 y 值,默認以下標為 x 軸:

%matplotlib inline x = linspace(0, 2 * pi, 50) plot(sin(x)) plot(x, sin(x))

plot(x, sin(x),x, sin(2 * x))

plot(x, sin(x), 'b-o',x, sin(2 * x), 'r-^')

散點圖

scatter(x, sin(x))

直方圖

從高斯分布隨機生成1000個點得到的直方圖:

hist(randn(1000))

文件操作 File IO

寫文件

f = open('路徑', 'w') f.write('1 2 3 4n') f.write('2 3 4 5n') f.close()

讀文件

f = open('路徑') data = [] for line in f:data.append([field for field in line.split()]) f.close() data

輸出結果

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

注:Python中有一種叫做列表推導式(List comprehension)的用法

numbers = [int(field) for field in fields] numbers

輸出結果:[1, 2, 3, 4, 5]

刪除文件:

import os os.remove('路徑')

類 Class

用class來定義一個類。 Person(object)表示繼承自object類; __init__函數用來初始化對象; self表示對象自身,類似于CJava里面this。

class Person(object):def __init__(self, first, last, age):self.first = firstself.last = lastself.age = agedef full_name(self):return self.first + ' ' + self.last

這就涉及到為什么要用類與對象,我們可以使用人的那個類,造出好多不同的人(對象)。

Mertle = Person('Mertle', 'Sedgewick', 52) Tom = Person('Tom', 'Swift', 28) Tom.age

結果輸出28,同理你可以得到任何已知對象的任何信息。

改變列表的方法

l.append(ob) 將元素 ob 添加到列表 l 的最后。

a = [10, 11, 12] a.append(11) print a

輸出:[10, 11, 12, 11]

a.append([11, 12]) print a

輸出:[10, 11, 12, 11, [11, 12]]

向列表添加序列:l.extend(lst) 將序列 lst 的元素依次添加到列表 l 的最后,作用相當于 l += lst。

a = [10, 11, 12, 11] a.extend([1, 2]) print a

輸出:[10, 11, 12, 11, 1, 2]

插入元素:l.insert(idx, ob) 在索引 idx 處插入 ob ,之后的元素依次后移。

a = [10, 11, 12, 13, 11] # 在索引 3 插入 'a' a.insert(1, 'a') print (a)

輸出:[10, 'a', 11, 12, 13, 11]

移除元素:l.remove(ob) 會將列表中第一個出現的 ob 刪除,如果 ob 不在 l 中會報錯。

a = [10, 11, 12, 13, 11] # 移除了第一個 11 a.remove(11) print a

輸出:[10, 12, 13, 11]

彈出元素:l.pop(idx) 會將索引 idx 處的元素刪除,并返回這個元素。

a = [10, 11, 12, 13, 11] a.pop(2)

輸出:12

排序l.sort() 會將列表中的元素按照一定的規則排序。
列表反向l.reverse() 會將列表中的元素從后向前排列。

continue 語句與break 語句

遇到 continue 的時候,程序會返回到循環的最開始重新執行。
例如在循環中忽略一些特定的值:

values = [7, 6, 4, 7, 19, 2, 1] for i in values:if i % 2 != 0:# 忽略奇數continueprint (i/2)

輸出為:

3.0
2.0
1.0

遇到 break 的時候,程序會跳出循環,不管循環條件是不是滿足。

函數接收不定參數

使用如下方法,可以使函數接受不定數目的參數:

def add(x, *args):total = xfor arg in args:total += argreturn total add(1,2,3,4)

輸出為:10

通過 map 的方式利用函數來生成序列

def sqr(x): return x ** 2a = [2,3,4] print map(sqr, a)

輸出為:[4, 9, 16]

其用法為:

map(aFun, aSeq)

將函數 aFun 應用到序列 aSeq 上的每一個元素上,返回一個列表,不管這個序列原來是什么類型。

事實上,根據函數參數的多少,map 可以接受多組序列,將其對應的元素作為參數傳入函數。

__name__ 屬性

有時候我們想將一個 .py 文件既當作腳本,又能當作模塊用,這個時候可以使用 __name__ 這個屬性。

只有當文件被當作腳本執行的時候, __name__的值才會是 '__main__',所以我們可以

%%writefile ex2.pyPI = 3.1416def sum(lst):""" Sum the values in a list"""tot = 0for value in lst:tot = tot + valuereturn totdef add(x, y):" Add two values."a = x + yreturn adef test():w = [0,1,2,3]assert(sum(w) == 6)print ('test passed.')if __name__ == '__main__':test()

運行文件:

%run ex2.py

輸出:test passed.

當作模塊導入, test() 不會執行:

import ex2

但是可以使用其中的變量:

ex2.PI

輸出:3.1416

也可以從模塊中導入變量:

from ex2 import add, PI

使用 from 后,可以直接使用 add , PI

try & except 塊

寫代碼的時候,出現錯誤必不可免,即使代碼沒有問題,也可能遇到別的問題。一旦報錯,程序就會停止執行,如果不希望程序停止執行,那么我們可以添加一對 try & except:

import mathwhile True:try:text = raw_input('> ')if text[0] == 'q':breakx = float(text)y = 1 / math.log10(x)print "log10({0}) = {1}".format(x, y)except ValueError:print "the value must be greater than 0"except ZeroDivisionError:print "the value must not be 1"except Exception:print "unexpected error"

except后面跟著錯誤類型,如果有該錯誤,則執行其后語句。

try/catch 塊還有一個可選的關鍵詞 finally。

不管 try 塊有沒有異常, finally 塊的內容總是會被執行,而且會在拋出異常前執行,因此可以用來作為安全保證,比如確保打開的文件被關閉。

try:print 1 finally:print 'finally was called.'

輸出:

1 finally was called.

numpy畫圖

linspace 用來生成一組等間隔的數據:

a = linspace(0, 2*pi, 21) %precision 3 a

輸出

array([0. , 0.314, 0.628, 0.942, 1.257, 1.571, 1.885, 2.199, 2.513,2.827, 3.142, 3.456, 3.77 , 4.084, 4.398, 4.712, 5.027, 5.341,5.655, 5.969, 6.283])

三角函數,作圖

b = sin(a) %matplotlib inline plot(a, b)

數組求和

a = array([[1,2,3], [4,5,6]]) sum(a)

輸出21

指定求和的維度:
沿著第一維求和:

sum(a, axis=0)

輸出:array([5, 7, 9])

沿著第二維求和

sum(a, axis=1)

輸出:array([ 6, 15])

沿著最后一維求和

sum(a, axis=-1)

輸出:array([ 6, 15])

求最大最小值的位置

a.argmin()

輸出0

近似到一位小數:

round方法

a = array([1.35, 2.5, 1.5]) a.round()

輸出:array([ 1., 2., 2.])

a.round(decimals=1)

輸出:array([ 1.4, 2.5, 1.5])

總結

以上是生活随笔為你收集整理的python 循环添加array_Python的备忘细节小抄的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。