這篇博客主要針對于使用python來進行深度學習/機器學習過程各方面小知識的總結。習慣于使用C++這種嚴謹的語言,改換到python這門相對來說開放式的語言需要很多學習,而作為一個菜雞,遇到編程問題解決了之后不到一周就會忘記,在此僅作一個記錄,也希望能幫到和我一樣的同學!
1.pandas的DataFrame和numpy的array數據類型的轉換
import numpy as np
import pandas as pd
mat = np.random.randn(3,4)
#numpy的array轉pandas的DataFrame,切記F是大寫
df = pd.DataFrame(mat)
#pandas的DataFrame轉numpy的array
mat = np.array(df)
2.判斷數據類型是否為np.array,以此類推其他數據類型的判斷
if type(train_data_all) is not np.ndarray:
3.使用pycharm和matplot畫圖顯示遇到圖像出現就不繼續運行的解決辦法
這是由于python可視化庫matplotlib有兩種顯示模式:
- 阻塞(block)模式
- 交互(interactive)模式
在Python Consol命令行中運行腳本,默認是阻塞模式。而在python IDE中運行腳本,matplotlib默認是交互模式。(使用python命令行運行腳本不能同時顯示不同圖像)
其中的區別是:
在交互模式下:
- plt.plot(x)或plt.imshow(x)是直接出圖像,不需要plt.show()
- 如果在腳本中使用ion()命令開啟了交互模式,沒有使用ioff()關閉的話,則圖像會一閃而過,并不會常留。要想防止這種情況,需要在plt.show()之前加上ioff()命令或者使用plt.pause(seconds)延長顯示。
在阻塞模式下:
- 打開一個窗口以后必須關掉才能打開下一個新的窗口。這種情況下,默認是不能像Matlab一樣同時開很多窗口進行對比的。
- plt.plot(x)或plt.imshow(x)是直接出圖像,需要plt.show()后才能顯示圖像
? 法一:如果不需要同時顯示多張圖片,可顯示一段時間后自動關閉,可保障程序繼續運行
#不使用plt.show()
plt.pause(15) #顯示秒數
plt.close()
法二:將show()寫在一個進程里,通過調用進程來打開圖像,這樣就不會影響主程序的后面代碼執行了。(博主未測試)
4.設置清華鏡像源:
命令下輸入:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
?