2020-01-18 pythonテクニック

2757 ワード

不定期更新
numpy to torch.tensor torch.from_numpy(xxx)
xxx to torch.tensor tensor=torch.Tensor(xxx)
tensor to numpy tensor_name.numpy()
numpy配列分割np.split(x, n) # n , list
複素numpy配列抽出実部と虚部numpy.real(xxx) numpy.imag(xxx)
実部と虚部を1つの複素配列に結合Data[...,0] + 1j * Data[...,1]またはresult = 1j*Data[...,1]; result += Data[...,0];tupleまたはlistをnumpy配列に変換numpy.array(xxx)
データ型強制変換(整数に変換する例)int(xxx)
numpy配列マージ
既存の次元numpy.concatenate((array1,array2,array3), axis=0)を維持して新しい次元stack numpy.stack((array1,array2,array3), axis=0)を追加
numpy配列の昇次元と降次元
昇次元np.expand_dims(array, axis=dim)降次元
ravel() #        (  )
flatten() #        ,     
squeeze() #        ,   1   , 315   3*5
reshape(-1) #     ,  
reshape(-1,5) #   -1                  ,   n 

numpyマトリクス回転numpy.transpose(matrix)
numpy配列の保存と読み取りa=np.array(a) np.save('a.npy',a) # .npy a=np.load('a.npy') # a=a.tolist()
空のnumpy配列を作成するには
mat = None
for col in columns:
  if mat is None:
    mat = col
  else:
    mat = hstack((mat, col))

Enumerate()非常に実用的なテクニック
for i,x in enumerate(xxx):
  pass

pythonディレクトリの下にあるすべてのファイルを読み込む
import os
path = "xxx" #      
files= os.listdir(path) #              
for file in files:
  file_name = path+"/"+file
  # some operations

zipファイルを解凍する
import zipfile
def un_zip(file_name):
    """  zip"""
    zip_file = zipfile.ZipFile(file_name)
    if os.path.isdir(file_name + "_files"):
        pass
    else:
        os.mkdir(file_name + "_files")
    for names in zip_file.namelist():
        zip_file.extract(names,file_name + "_files/")
    zip_file.close()

list objの追加list_name.append(obj)
リストの要素を削除del listname[start : end] listname.pop(index) listname.remove(value) # value
大リストを小リストにカットlst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] b = [lst[i:i+3] for i in range(0,len(lst),3)] # list 3
辞書の作成dic = { 'key1' : 'value1', 'key2' : 'value2', }
python実行時にメモリをクリーンアップするにはどうすればいいですか?
import gc # garbage collector
del var
gc.collect()

ディレクトリが存在するかどうかを判断import os os.path.isdir('path')
辞書を取得するキーdict_name.keys()