这篇博客主要针对于使用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