1. NumPy 库
NumPy 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy 可以说是 Python 数据分析之路上不可或缺的利器。
1.1 随机数生成
在 NumPy 库中,可以使用以下函数生成随机数:numpy.random.randint()、numpy.random.sample()、numpy.random.uniform()、numpy.random.normal() 四种函数。
# 随机生成 10 个 0-100 的整数
import numpy as np
np.random.randint(low=0, high=100, size=10)
在 Python 中,有多种方法实现生成随机浮点数。
# 生成 (0, 1) 之间的浮点数
import random
print(random.random())
# 生成一个随机浮点数,范围从 x 到 y
import random
print(random.uniform(1, 10))
1.2 数组操作
在 NumPy 库中,可以使用 reshape 函数调整数组形状,使用 concatenate 函数连接数组,使用 split 函数切分数组。
import numpy as np
a = np.arange(9)
print("初始数组:\n", a)
b = a.reshape(3, 3)
print("调整后的数组:\n", b)
c = np.concatenate((a, b))
print("连接后的数组:\n", c)
d = np.split(a, 3)
print("切分后的数组:\n", d)
2. Pandas 库
Pandas 是一个在 Python 编程语言中使用的数据操作库,用于数据操作和数据分析。
2.1 数据读取
在 Pandas 库中,可以使用以下函数读取不同格式的数据:pandas.read_csv()、pandas.read_excel()、pandas.read_sql()、pandas.read_json() 四种函数。
# 读取 CSV 文件
import pandas as pd
data = pd.read_csv('example.csv')
2.2 数据清洗
在 Pandas 库中,可以使用以下函数清洗数据:pandas.drop()、pandas.fillna()、pandas.drop_duplicates()、pandas.replace() 四种函数。
# 剔除带有空值的行
data = data.dropna()
# 用 0 替换所有空值
data = data.fillna(0)
# 剔除重复行
data = data.drop_duplicates()
# 将指定文本替换为其他文本
data = data.replace("male", "M")
3. Matplotlib 库
Matplotlib 是 Python 语言的一个绘图库。它提供了一整套和 Matlab 类似的绘图接口,而且具有较高的可定制性。
3.1 折线图
在 Matplotlib 库中,可以使用以下函数绘制折线图:pylab.plot()。
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.plot(x, y)
plt.show()
3.2 散点图
在 Matplotlib 库中,可以使用以下函数绘制散点图:pylab.scatter()。
import matplotlib.pyplot as plt
x = [1, 2, 3]
y = [4, 5, 6]
plt.scatter(x, y)
plt.show()
4. Scikit-learn 库
Scikit-learn 是基于 Python 语言开发的机器学习库,它提供了通用和高级机器学习算法的各种工具。
4.1 K-means 算法
K-means 算法是聚类算法中最简单也是最经典的算法之一,在 Scikit-learn 库中可以使用以下函数实现 K-means 算法:sklearn.cluster.KMeans()。
from sklearn.cluster import KMeans
import numpy as np
KMeans(n_clusters=8).fit(np.array([[-3, -2], [-4, -3], [-3, -4], [-2, -3], [3, 2], [4, 3], [3, 4], [2, 3]]))
4.2 线性回归
在 Scikit-learn 库中,可以使用以下函数实现线性回归:sklearn.linear_model.LinearRegression()。
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3
reg = LinearRegression().fit(X, y)
5. TensorFlow 库
TensorFlow 是一种基于数据流编程(dataflow programming)的符号数学系统(symbolicmathematics system),被广泛应用于各种机器学习领域中的深度学习算法。
5.1 线性回归
在 TensorFlow 库中,可以使用以下代码实现线性回归:
import tensorflow as tf
import numpy as np
x_train = np.array([[1], [2], [3], [4]])
y_train = np.array([[0], [-1], [-2], [-3]])
x = tf.placeholder(tf.float32, shape=[None, 1])
y = tf.placeholder(tf.float32, shape=[None, 1])
W = tf.Variable(tf.zeros([1, 1]), name="weights")
b = tf.Variable(tf.zeros([1]), name="bias")
y_hat = tf.matmul(x, W) + b
loss = tf.reduce_mean(tf.square(y_hat - y))
optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01)
train = optimizer.minimize(loss=loss)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
for i in range(1000):
_, loss_value = sess.run([train, loss], feed_dict={x: x_train, y: y_train})
print(sess.run([W, b]))
5.2 卷积神经网络
在 TensorFlow 库中,可以使用以下代码实现卷积神经网络:
import tensorflow as tf
from tensorflow.keras import layers
model = tf.keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.summary()
6. Flask 库
Flask 是使用 Python 编程语言编写的 Web 框架,它可以帮助开发者构建 Web 应用程序和 RESTful API。
6.1 应用程序
在 Flask 库中,可以使用以下代码创建一个简单的应用程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
6.2 RESTful API
在 Flask 库中,可以使用以下代码创建一个简单的 RESTful API:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/api/v1/data', methods=['POST'])
def post_data():
data = request.get_json()
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
此代码会监听 HTTP POST 请求,接收 JSON 数据并将其返回。