2019/12/26
-
在本书中关于SciPy遇到的第一个问题就是 str.format() 函数,参考了文章。
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
-
将NumPy数组转换为CSR格式的SciPy稀疏矩阵 ,只保存非零元素 。
from scipy import sparse
eye = np.eye(4)
#print("Numpy array:\n{1}{0}".format(eye,8))
print(sparse.csr_matrix(eye))
对于稀疏矩阵的存储格式还有COO、DIA等,详见参考博文稀疏矩阵的存储格式介绍
-
了解Pandas,用于处理和分析数据的Python库。
Pandas它基于一种叫作 DataFrame 的数据结构。
SQL???——SQL 是用于访问和处理数据库的标准的计算机语言。
想要具体学习pandas的详尽功能,推荐读 Wes McKinney 的《Python 数据处理》2。
我们利用字典创建DataFrame一个实例,如下:
#利用字典创建 DataFrame 的小例子
import pandas as pd
from IPython.display import display
data = {'name':['liuyi','liujiaqi','xiaoming'],
'Location':['changchun','beijing','shanghai'],
'Age':['24','25','27']
}
data_pandas = pd.DataFrame(data)
display(data_pandas)
我们要怎么去查询这个DataFrame创建的表格呢?方法有很多种。举个例子:
import pandas as pd
from IPython.display import display
data = {'name':['liuyi','liujiaqi','xiaoming'],
'Location':['长春','北京','上海'],
'Age':[24,25,27]
}
data_pandas = pd.DataFrame(data)
display(data_pandas)
#查询年龄大于25的所有行
display(data_pandas[data_pandas.Age > 25])
结果图如下:
- Jupyter Notebook --魔法命令%matplotlib inline 显示图像
-
构建第一个模型:k近邻算法
from sklearn.datasets import load_iris
iris_dataset = load_iris()
# print("Keys of iris_dataset:\n{}".format(iris_dataset.keys()))
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(
iris_dataset['data'],iris_dataset['target'],random_state=0)
#print("X_train shape: {}".format(X_train.shape))
#print("y_train shape: {}".format(y_train.shape))
import numpy as np
import pandas as pd
# 利用X_train中的数据创建DataFrame
# 利用iris_dataset.feature_names中的字符串对数据列进行标记
#iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names)
# 利用DataFrame创建散点图矩阵,按y_train着色
#grr = pd.plotting.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), marker='o',
# hist_kwds={'bins': 20}, s=60, alpha=.8)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train,y_train)
###做出预测###
X_new = np.array([[5,2.9,1,0.2]])
#print(X_new.shape)
#print("X_new.shape:{}".format(X_new.shape))
prediction = knn.predict(X_new)
#print("Prediction:{}".format(prediction))
#print("Predicted target name:{}".format(
#iris_dataset['target_names'][prediction]))
###评估模型###
#estimate
#y_pred = knn.predict(X_test)
#print("Test set predictions:\n{}".format(y_pred))
#print("Test set score:{:.2f}".format(np.mean(y_pred == y_test)))
print("Test set score:{:.2f}".format(knn.score(X_test,y_test)))