导入和导出CSV 读取包含现有信息的CSV(一般特指非NumPy导出的)很简单。最好、最简单的方法是使用pandas模块(附录1)。music.csv文件附录2。
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
>>> import pandas as pd>>> #如果所有列的类型相同:>>> x = pd.read_csv('music.csv', header=0).values>>> print(x)[['Billie Holiday' 'Jazz' 1300000 27000000] ['Jimmie Hendrix' 'Rock' 2700000 70000000] ['Miles Davis' 'Jazz' 1500000 48000000] ['SIA' 'Pop' 2000000 74000000]]>>> x = pd.read_csv('music.csv').values #header=0(即第一行是表格栏目标题)是默认值>>> print(x)[['Billie Holiday' 'Jazz' 1300000 27000000] ['Jimmie Hendrix' 'Rock' 2700000 70000000] ['Miles Davis' 'Jazz' 1500000 48000000] ['SIA' 'Pop' 2000000 74000000]]>>> #还可以随意获取某些列:>>> x = pd.read_csv('music.csv', usecols=['Artist', 'Plays']).values>>> print(x)[['Billie Holiday' 27000000] ['Jimmie Hendrix' 70000000] ['Miles Davis' 48000000] ['SIA' 74000000]]
使用Pandas导出数组也很简单。如果用户是NumPy的新手,可能需要从数组中的值创建Pandas数据帧(dataframe),然后使用Pandas将数据帧写入CSV文件。 例如下面的数组“a”
·
·
·
·
>>> a = np.array([[-2.58289208, 0.43014843, -1.24082018, 1.59572603],... [ 0.99027828, 1.17150989, 0.94125714, -0.14692469],... [ 0.76989341, 0.81299683, -0.95068423, 0.11769564],... [ 0.20484034, 0.34784527, 1.96979195, 0.51992837]])
根据这个数组创建Pandas数据帧:
·
·
·
·
·
·
·
>>> df = pd.DataFrame(a)>>> print(df) 0 1 2 30 -2.582892 0.430148 -1.240820 1.5957261 0.990278 1.171510 0.941257 -0.1469252 0.769893 0.812997 -0.950684 0.1176963 0.204840 0.347845 1.969792 0.519928
很容易地按下面的方法把数据帧保存到文件:
·
>>> df.to_csv('pd.csv')
保存后可以用下面的方法读出这CSV文件:
·
·
·
·
·
·
·
>>> data = pd.read_csv('pd.csv')>>> data Unnamed: 0 0 1 2 30 0 -2.582892 0.430148 -1.240820 1.5957261 1 0.990278 1.171510 0.941257 -0.1469252 2 0.769893 0.812997 -0.950684 0.1176963 3 0.204840 0.347845 1.969792 0.519928
当然,也可以用NumPy的savetxt函数保存数组:
·
>>> np.savetxt('np.csv', a, fmt='%.2f', delimiter=',', header='1, 2, 3, 4')
如果使用的是命令行操作系统,可以随时通过如下的命令查看CSV文件:
·
·
·
·
·
·
$ cat np.csv# 1, 2, 3, 4-2.58,0.43,-1.24,1.600.99,1.17,0.94,-0.150.77,0.81,-0.95,0.120.20,0.35,1.97,0.52
或者用文本编辑器打开它:
如果用户有兴趣了解更多关于Pandas的信息,请查看Pandas官方文档(附录1官方网站)。
使用Matplotlib绘制数组 如果需要通过数值绘图,使用Matplotlib(附录3)是非常简单。 例如,如下一个数组:
·
>>> a = np.array([2, 1, 5, 7, 4, 6, 8, 14, 10, 9, 18, 20, 22])
导入Matplotlib:
·
>>> import matplotlib.pyplot as plt
剩下来的就是运行下面的代码绘图:
·
·
·
>>> plt.plot(a)[<matplotlib.lines.Line2D object at 0x0000025E10040F90>]>>> plt.show()
又例如,绘制1D数组如下:
·
·
·
·
·
·
·
>>> x = np.linspace(0, 5, 20)>>> y = np.linspace(0, 10, 20)>>> plt.plot(x, y, 'purple') # 线[<matplotlib.lines.Line2D object at 0x0000025E10041890>]>>> plt.plot(x, y, 'o') # 点[<matplotlib.lines.Line2D object at 0x0000025E12200150>]>>> plt.show()
使用Matplotlib,还可以设定大量可视化绘图的选项。
·
·
·
·
·
·
·
·
·
·
>>> fig = plt.figure()>>> ax = fig.add_subplot(projection='3d')>>> X = np.arange(-5, 5, 0.15)>>> Y = np.arange(-5, 5, 0.15)>>> X, Y = np.meshgrid(X, Y)>>> R = np.sqrt(X**2 + Y**2)>>> Z = np.sin(R)>>> ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='viridis')<mpl_toolkits.mplot3d.art3d.Poly3DCollection object at 0x0000025E112C6710>>>> fig.show()
要了解有关Matplotlib及其功能的更多信息,请查看官方文档(附录3)。
附录1:pandas模块1、安装pandas模块:pip install pandas
2、导入模块:
import pandas as pd
3、官方网站:
https://pandas.pydata.org/
附录2:music.csv文件
·
·
·
·
·
Artist,Genre,Listeners,PlaysBillie Holiday,Jazz,1300000,27000000Jimmie Hendrix,Rock,2700000,70000000Miles Davis,Jazz,1500000,48000000SIA,Pop,2000000,74000000
附录3:Matplotlib
1、安装模块:
·
pip install matplotlib
2、导入绘图:
·
import matplotlib.pyplot as plt
3、官方网站:
https://matplotlib.org/