python實用技巧(一)

2021-07-08 21:18:49 字數 3976 閱讀 3892

python實用技巧(一)

python實用技巧(二)

python實用技巧(三)

python實用技巧(四)

已知x是多維陣列型別,則:

在作業系統(windows或者linux)命令列介面下:

> python -v

python 3.4

.3:: anaconda

2.3.0 (32

-bit)

如果我們已經進行python命令環境下呢:

>>> 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)

for i in range

(1000000):

passwd = str(i)

iflen(passwd) <6:

passwd = (6-len(passwd))*'0'+passwd

print(passwd)

兩個list之間進行相加的意義何在:

[1, 2, 3, 4] # 實現一種拼接,相當於extend

# 只有加法(也即拼接)運算。

# 沒有乘除,也沒有減法

>>> [1, 2] + 3

typeerror: can only concatenate list (not

"int") to

list

錯誤提示很清楚:

"int") to

list

只允許listlist進行concatenate,而不可將listint進行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指令碼,在進行除錯的時...