python實用技巧(一)
python實用技巧(二)
python實用技巧(三)
python實用技巧(四)
已知x
是多維陣列型別,則:
在作業系統(windows或者linux)命令列介面下:
如果我們已經進行python命令環境下呢:> python -v
python 3.4
.3:: anaconda
2.3.0 (32
-bit)
>>> import sys
>>> sys.version
'3.4
.3 |anaconda
2.3.0 (32-bit)| (default, mar 6 2015, 12:08:17) [msc v.1600 32
bit (intel)]'
>>> sys.version[:5]
'3.4
.3'
>>>
import library_name
>>> library_name.__version__
'*.*.*'
# 如果我們使用dir(),返回其屬性和方法以list of strings的形式
# 我們會看到該物件內部會維護__version__
requirements.txt
檔案一般用來儲存第三方的庫名及其對應的版本資訊,如:
將所有需要安裝的庫以檔案的形式統一進行安裝,避免了手動的乙個庫乙個庫的安裝。numpy==1.9.2
theano==0.7.0
切換到該.txt
檔案所在的資料夾下:
pip install -r requirements.txt
使用list comprehension
(最外層為[ ]
)的目的是使用簡潔的方式建立乙個list(也即list comprehension返回乙個list),而list是乙個可迭代物件(iterables):
在list comprehension中增加判斷邏輯(也即filter):
[exp for x in seq if cond]注意:不是[exp for x in seq and cond],也不是[exp if cond for x in seq]。
由>>> [i**2
for i in range(10) if i%2 == 0]
[0, 4, 16, 36, 64]
>>> type([i**2
for i n range(10) if i%2 == 0])
list
>>>
for i in [i**2
for i in range(10) if i%2==0]:
print(i)04
1636
64
( )
包裹的是生成器型別(generator),也是一種可迭代型別(iterables)
>>> type((i**2
fori in range(10) if
i%2==0))
generator
>>> for
i in (i**2
fori in range(10) if
i%2==0):
print(i)04
1636
64
不可以>>> print(1/6)
0.16666666666666666
# 預設
>>> print(''.format(1/6))
0.16666666666666666
# 預設
>>> print(''.format(1/6))
0.17
>>> print(''.format(1/6))
0# 本身含有四捨五入的操作
的形式輸出乙個float:
>>> print(''.format(10.0))
valueerror: unknown format code 'd'
for object of type 'float'
>>> print(''.format(10.0))
10
np.random
.randn() ~ n(0, 1), 標準高斯分布
np.random
.rand() ~ u(0, 1), [0, 1]區間上的均勻分布
>>> !date
當前日期: 2015/12/19 週六
輸入新日期: (年月日)
enumerate(zip(, ))
生成的每乙個可迭代的物件是乙個二元元組,元組第一位是其序號,第二位是zip打包返回的內容;
for i, (param, true, est) in enumerate(zip('abcd', [a, b, c, d], plesq[0])):
plt.text(10, 3-i*.
5, ''.format())
# data是一維陣列
n = len(data)
idx = np.random.randin(0, n, size=(nsamples, n))
samples = data[idx]
# samples的shape也變為(nsamples, n)
兩個list之間進行相加的意義何在:for i in range
(1000000):
passwd = str(i)
iflen(passwd) <6:
passwd = (6-len(passwd))*'0'+passwd
print(passwd)
[1, 2, 3, 4] # 實現一種拼接,相當於extend
# 只有加法(也即拼接)運算。
# 沒有乘除,也沒有減法
>>> [1, 2] + 3
typeerror: can only concatenate list (not
"int") to
list
錯誤提示很清楚:
"int") to
list
只允許list
和list
進行concatenate
,而不可將list
和int
進行concatenate
。
在lenet5的源程式中:
params = layer3.params + layer2.params + layer1.params + layer0.params
# 其中每一層的params都是list型別
# 最終的params是全部組成的list
>>> chr(65)
'a'>>> ord('a')
65>>> chr(ord('a')+1)
'b'
>>>
from fractions import fraction
>>> fraction(1, 2)
fraction(1, 2)
>>> fraction(2, 4)
fraction(1, 2)
Python實用技巧
1 改變工作目錄 1 import os2 os.chdir c users mr.zhao 2 搜尋制定目錄下的檔案 1 import glob 2 glob.glob c user mr.zhao csv 3 對字典進行排序 1 dict test 2 sorted dict test.item...
Python實用技巧 object篇
返回字典中所有鍵的列表。def keys only flat dict return list flat dict.keys 示例 ages keys only ages peter isabel anna 建立乙個與提供的物件具有相同鍵的物件,每個值為通過提供的函式生成的值。def map val...
Linux 實用技巧
值得一提的是vim是慈善軟體 charityware 如有贊助或評比得獎,所得將全部救助烏干達孤兒,軟體使用是免費的,歡迎手頭有點閒錢的使用者捐款贊助,如果沒銀子也沒關係,至少當有評比活動時 有獎金可拿的那種 應用技巧一 快速注釋 1 連續行注釋 使用vim vi編輯shell指令碼,在進行除錯的時...