scipy教程和应用
SciPy(Scientific Python)是一个开源的Python科学计算库,它建立在NumPy之上,提供了许多用于科学和工程计算的高级功能。SciPy的目标是提供广泛的数学、科学和工程计算工具,以便科学家、工程师和研究人员可以方便地使用Python进行复杂的科学计算和数据分析。
·
scipy教程和应用
第一章 简介
第二章 基础操作
2.1 稀疏行压缩矩阵(compress sparse row matrix)
在科学数值计算时,长需要压缩稀疏矩阵,这时候就要用到scipy库中的sparse.csr_matrix。
csr_matrix((data, indices, indptr), shape=(3, 3)).toarray()
|—— data: 矩阵中非零元素的值
|—— indices:非零元素的列索引
|—— indptr: 0表示默认起点,0之后数值个数表示行数,count = indptr[i+1] - indptr[i]表示第i行非零元素的个数。
第三章 应用
3.1 稀疏行压缩矩阵应用
3.1.1 独热编码(one hot encoding)
在机器学习中,我们经常会遇到分类问题。独热编码是一种常用的处理分类数据的编码方法。它将离散的分类数据转换为二进制向量,其中每个分类值被编码为一个向量中的元素,只有一个元素被置为1(表示存在),其他元素都被置为0(表示不存在)。
独热编码的核心思想是为每个不同的分类值创建一个唯一的二进制编码。例如,一个包含颜色的分类标签集,可能取值为:红色、绿色和蓝色。使用独热编码,这些值被编码为:
- 红色:[1, 0, 0]
- 绿色:[0, 1, 0]
- 蓝色:[0, 0, 1]
def label_binarize(self, y, classes, neg_label=0, pos_label=1):
n_samples = len(y) # 样本数目
n_classes = len(classes) # 类别数目
classes = np.asarray(classes)
y = np.asarray(y)
sorted_class = np.sort(classes)
y_in_classes = np.in1d(y, classes)
y_seen = y[y_in_classes]
indices = np.searchsorted(sorted_class, y_seen) # 列索引
indptr = np.hstack((0, np.cumsum(y_in_classes)))
data = np.full_like(indices, fill_value=pos_label)
y = sp.csr_matrix((data, indices, indptr), shape=(n_samples, n_classes),
dtype=int, copy=False).toarray()
return y
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)