集智专栏
资源加载中,请稍后...
集智专栏

[2018.04.03直播] Python之文件

往期回顾

负基础入门Python系列汇总


直播时间 21:00

1. 页内观看(仅视频)

2. 完整观看(可发弹幕):Python:文件

3. Bilibili直播



31. 文件读写

31.1 open()

程序说明
open()
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work
示例代码
# 打开目标文件,指定编码格式,生成文件对象 f = open("taijian.txt", encoding='utf-8') # 读取文本内容 print(f.readlines()) # 关闭文件 f.close()


程序说明
with..as..
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work
示例代码
with open("taijian.txt", 'r', encoding='utf-8') as f: print(f.read())


31.2 numpy.loadtxt()

来自UCI Machine Learning Repository的数据集:airfoil_self_noise.dat

This problem has the following inputs:

  1. Frequency, in Hertzs.
  2. Angle of attack, in degrees.
  3. Chord length, in meters.
  4. Free-stream velocity, in meters per second.
  5. Suction side displacement thickness, in meters.

The only output is:

  1. Scaled sound pressure level, in decibels.
  • 内置函数open()的局限性
程序说明
np.loadtxt
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work
示例代码
with open('airfoil_self_noise.dat') as f: aero_data = f.read() print(type(aero_data)) aero_data


程序说明
np.loadtxt()
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work
示例代码
import numpy as np aero_arr = np.loadtxt('airfoil_self_noise.dat') print(type(aero_arr)) # 将数据集内样本数量赋值给变量nb_samples # >>>> show me the code <<<< nb_samples = # >>>> show me the code <<<< aero_arr
正确答案
nb_samples = aero_arr.shape[0]
程序验证过程
nb_samples == 1503
提示信息
aero_arr.shape


31.3 cv2.imread()

程序说明
cv2.imread()
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work %matplotlib inline
示例代码
import cv2 import matplotlib.pyplot as plt messi = cv2.imread('messi5.jpg') print('messi.shape -> ', messi.shape) plt.imshow(messi)


  • OpenCV的默认色彩是BGR而MatplotLib的是RGB
  • 调整色彩通道格式
程序说明
cv2.imread()
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work %matplotlib inline
示例代码
import cv2 import matplotlib.pyplot as plt messi = cv2.imread('messi5.jpg') # 修改messi,使图片颜色正常显示,赋值给变量messi_rgb # >>>> make messi colorful again <<<< messi_rgb = # >>>> make messi colorful again <<<< plt.imshow(messi_rgb)


细心的读者可能发现上面两个关于OpenCV的代码框是Py2版本,这并非是OpenCV只兼容Python2,而是网站后台对Python3解释器尚未安装OpenCV模块的原因。实际上Python3的代码也完全一致,可以直接运行。



32. 极简机器学习案例:机翼自激噪声预测

输入数据

  1. 频率(Hertzs)
  2. 攻角(degrees)
  3. 弦长(meters)
  4. 流速(meters per second)
  5. 吸力面位移厚度(meters)

输出结果

  1. 声压(decibels)


程序说明
Airfoil Self Noise Prediction
预处理代码
!cp /mnt/vol0/aipy_live/* ~/work
示例代码
import numpy as np from sklearn import linear_model from sklearn.metrics import mean_squared_error, r2_score from sklearn.model_selection import train_test_split aero_arr = np.loadtxt('airfoil_self_noise.dat') X = aero_arr[:,:5] y = aero_arr[:,-1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 构建线性回归模型 regr = linear_model.LinearRegression() # 基于训练数据进行拟合 # >>>> replace the ____ <<<< regr.fit(____, ____) # 对测试数据做预测 # >>>> replace the ____ <<<< y_pred = regr.predict(____) # 评估预测结果 print("Mean squared error: %.2f" % mean_squared_error(y_test, y_pred)) print('Variance score: %.2f' % r2_score(y_test, y_pred))
正确答案
regr.fit(X_train, y_train) y_pred = regr.predict(X_test)
程序验证过程
y_pred.shape[0] == 301
提示信息
明确训练集、测试集的含义。

您也许喜欢这些文章

Julia快速入门(下)

发表至系列教程
本文紧接着本站翻译的之前两篇文章,来介绍Julia语言相关的另外一些关键知识点——Types、文件IO、第三方包的使用、绘图以及DataFrames。

[Python入门] 01 基本法则

发表至系列教程
Python入门教程系列的第一篇,从最基本的概念与法则开始,面向从未接触过Python甚至没有任何编程基础的读者。 Python是数据科学界最主流的编程语言,相对于传统的Excel等数据处理工具,Python具备处理海量数据的能力,并且可以执行机器学习算法。从数据获取(网络爬虫等工具)、数据清理到数据分析拟合再到最终的可视化呈现,Python都能胜任。

《机器学习有意思! 01》- 世界上最简单的机器学习入门

发表至趣味项目
本教程适合所有对机器学习感到好奇,却不知从何下手的读者。我想应该有很多人试着读了维基百科页面,然后愈发迷惘、沉沦,盼望着有人能够提供一个high-level的解释,那你找对地方了。

文章评论(0)