【Python百宝箱】数据清洗艺术:Python库助力打磨完美数据

数据清洗与预处理:Python库大揭秘

前言

在数据科学领域,数据清洗和预处理是构建可靠模型的关键步骤。本文深入探讨了一系列强大的Python库,它们在处理重复数据、字符串匹配、数据整理以及降维等方面发挥着重要作用。通过学习这些库,数据科学家们能够更高效地提升数据质量,为深入分析和建模打下坚实基础。

【Python百宝箱】从混沌到有序:sortedcontainers库的数据魔法改变你的编程体验

欢迎订阅专栏:Python库百宝箱:解锁编程的神奇世界

文章目录

  • 数据清洗与预处理:Python库大揭秘
    • 前言
    • 1. Dedupe库
      • 1.1 去重方法
      • 1.2 数据清理技术
      • 1.3 聚类配置
      • 1.4 处理大规模数据
    • 2. FuzzyWuzzy库
      • 2.1 模糊匹配算法
      • 2.2 字符串相似性计算
      • 2.3 应用案例
      • 2.4 大规模数据处理
      • 2.5 结果优化与阈值设定
    • 3. PyJanitor库
      • 3.1 数据整理和清理工具
      • 3.2 列名标准化
      • 3.3 数据格式转换技术
      • 3.4 缺失值处理
      • 3.5 多表连接与合并
    • 4. Pandas库
      • 4.1 数据框处理
      • 4.2 缺失值处理
      • 4.3 数据合并和连接技术
      • 4.4 数据分组和聚合操作
      • 4.5 时间序列处理
      • 4.6 数据透视表与交叉表
    • 5. NumPy库
      • 5.1 数组操作与处理
      • 5.2 数学函数和统计方法
      • 5.3 线性代数操作
      • 5.4 数据类型转换技术
      • 5.5 随机数生成
      • 5.6 数据切片和索引技巧
      • 5.7 数组操作与广播机制
    • 6. Scikit-learn库
      • 6.1 特征缩放与标准化
      • 6.2 异常值检测
      • 6.3 数据降维技术
      • 6.4 模型训练与评估
      • 6.5 超参数调优
    • 总结

1. Dedupe库

1.1 去重方法

Dedupe库是一个用于识别和去除重复数据的Python库。它通过记录间的相似度计算,使用聚类算法将相似的记录分组在一起,从而实现数据去重。以下是一个简单的示例代码:

import dedupe# 示例数据
data = [{'name': 'John Doe', 'email': 'john@example.com'},{'name': 'Jane Doe', 'email': 'jane@example.com'},{'name': 'John Doe', 'email': 'john@example.com'}]# 定义字段相似度配置
fields = [{'field': 'name', 'type': 'String'},{'field': 'email', 'type': 'String'}]# 初始化Dedupe
deduper = dedupe.Dedupe(fields)# 训练Dedupe模型
deduper.sample(data)# 查找相似记录并去重
clustered_data = deduper.match(data)print(clustered_data)

1.2 数据清理技术

Dedupe库除了去重功能外,还提供了数据清理的功能。它可以通过定义预处理函数来规范化和清理数据。以下是一个简单的示例:

import dedupe# 示例数据
data = [{'name': 'John Doe', 'email': 'john@example.com'},{'name': 'Jane Doe', 'email': 'jane@example.com'},{'name': 'John Doe', 'email': 'john@example.com'}]# 定义字段相似度配置
fields = [{'field': 'name', 'type': 'String'},{'field': 'email', 'type': 'String'}]# 初始化Dedupe
deduper = dedupe.Dedupe(fields)# 定义数据清理函数
def preProcess(data):data['name'] = dedupe.canonicalize(data['name'])data['email'] = dedupe.canonicalize(data['email'])return data# 训练Dedupe模型,包括数据清理步骤
deduper.sample(data, preprocessor=preProcess)# 查找相似记录并去重
clustered_data = deduper.match(data)print(clustered_data)

为了进一步探索Dedupe库的功能,我们可以了解更多有关其聚类配置和如何处理大量数据的内容。

1.3 聚类配置

在Dedupe中,可以配置聚类设置以更好地适应不同类型的数据和需求。这包括定义聚类的阈值和模型参数。以下是一个示例代码,展示了如何配置Dedupe的聚类参数:

import dedupe# 示例数据
data = [{'name': 'John Doe', 'email': 'john@example.com'},{'name': 'Jane Doe', 'email': 'jane@example.com'},{'name': 'John Doe', 'email': 'john@example.com'}]# 定义字段相似度配置
fields = [{'field': 'name', 'type': 'String'},{'field': 'email', 'type': 'String'}]# 初始化Dedupe并配置聚类参数
deduper = dedupe.Dedupe(fields, threshold=0.5, num_cores=2)# 训练Dedupe模型
deduper.sample(data)# 查找相似记录并去重
clustered_data = deduper.match(data)print(clustered_data)

在这个例子中,threshold参数定义了聚类的相似度阈值,以决定记录是否被视为相似。num_cores参数允许指定并行处理的核心数量,有助于加速大规模数据的处理。

1.4 处理大规模数据

当处理大规模数据时,Dedupe提供了一些技术来提高效率,比如将数据分块处理。以下是一个处理大规模数据的示例:

import dedupe# 示例数据生成器(模拟大规模数据)
def data_stream():for i in range(100000):yield {'name': f'John Doe {i}', 'email': f'john{i}@example.com'}# 定义字段相似度配置
fields = [{'field': 'name', 'type': 'String'},{'field': 'email', 'type': 'String'}]# 初始化Dedupe
deduper = dedupe.Dedupe(fields)# 使用数据生成器训练Dedupe模型
deduper.sample(data_stream())# 查找相似记录并去重(可分块处理)
clustered_data = deduper.match(data_stream(), block=True)print(clustered_data)

这个例子展示了如何使用数据生成器data_stream()模拟大规模数据,并通过block=True参数使Dedupe能够逐块处理数据,从而有效地处理大数据量。

以上是更深入了解Dedupe库的方法,从聚类配置到处理大规模数据,这些都是扩展了解数据去重和清理的重要方面。

2. FuzzyWuzzy库

2.1 模糊匹配算法

FuzzyWuzzy库提供了多种模糊匹配算法,其中最常用的是fuzzy_ratiotoken_sort_ratio。以下是一个简单的演示:

from fuzzywuzzy import fuzz# 示例数据
string1 = "Hello World"
string2 = "Halo Wold"# 使用fuzzy_ratio计算相似度
ratio = fuzz.ratio(string1, string2)
print(f"Fuzzy Ratio: {ratio}")# 使用token_sort_ratio计算相似度(考虑单词排序)
token_ratio = fuzz.token_sort_ratio(string1, string2)
print(f"Token Sort Ratio: {token_ratio}")

2.2 字符串相似性计算

除了基本的相似度计算外,FuzzyWuzzy还提供了其他方法,如partial_ratiopartial_token_sort_ratio等,用于更灵活的字符串相似性计算。

from fuzzywuzzy import fuzz# 示例数据
string1 = "Hello World"
string2 = "Hello Python World"# 使用partial_ratio计算相似度(部分匹配)
partial_ratio = fuzz.partial_ratio(string1, string2)
print(f"Partial Ratio: {partial_ratio}")# 使用partial_token_sort_ratio计算相似度
partial_token_ratio = fuzz.partial_token_sort_ratio(string1, string2)
print(f"Partial Token Sort Ratio: {partial_token_ratio}")

2.3 应用案例

FuzzyWuzzy的模糊匹配功能广泛应用于文本匹配、字符串相似性比较等场景。以下是一个简单的案例,比较两个字符串列表中的相似性:

from fuzzywuzzy import process# 示例数据
choices = ['apple', 'banana', 'orange', 'kiwi']
query = 'kiwi fruit'# 使用process库进行模糊匹配
best_match = process.extractOne(query, choices)print(f"Best Match: {best_match}")

这些FuzzyWuzzy库的功能是处理字符串相似性和模糊匹配的利器。或许可以深入了解一些高级用法,比如处理大量数据或优化匹配结果。

2.4 大规模数据处理

当需要处理大规模数据时,FuzzyWuzzy也提供了一些技巧来提高效率,比如使用函数extractOne()的并行处理方法。以下是一个示例:

from fuzzywuzzy import process
from multiprocessing import Pool# 示例数据生成器(模拟大规模数据)
def data_generator():for i in range(100000):yield f'Target String {i}'# 示例查询
query = 'Target String 5678'# 使用多进程并行处理
with Pool() as pool:best_match = process.extractOne(query, data_generator(), scorer=fuzz.ratio, pool=pool)print(f"Best Match: {best_match}")

这个例子演示了如何利用Python的multiprocessing.Pool实现并行处理,加速处理大规模数据的模糊匹配过程。

2.5 结果优化与阈值设定

FuzzyWuzzy匹配结果可以通过设定阈值来优化,只保留高于特定相似度的匹配项。以下是一个示例,展示如何根据阈值过滤匹配结果:

from fuzzywuzzy import process# 示例数据
choices = ['apple', 'banana', 'orange', 'kiwi']
query = 'kiwi fruit'# 设定阈值
threshold = 60# 使用process库进行模糊匹配,并根据阈值筛选结果
matches = process.extract(query, choices, scorer=fuzz.ratio)
filtered_matches = [match for match in matches if match[1] >= threshold]print(f"Filtered Matches: {filtered_matches}")

在这个例子中,设定了一个阈值(60),筛选出与查询字符串相似度高于阈值的匹配结果。

这些方法可以让你更深入地利用FuzzyWuzzy库来应对不同的需求,处理大规模数据,优化匹配结果,以及根据需要设定阈值来过滤匹配项。

3. PyJanitor库

3.1 数据整理和清理工具

PyJanitor库提供了一系列用于数据整理和清理的工具,使数据处理更加简便。以下是一个使用PyJanitor进行列名标准化的示例:

import pandas as pd
import janitor# 示例数据
data = {'Column 1': [1, 2, 3], 'Column 2': [4, 5, 6]}# 创建DataFrame
df = pd.DataFrame(data)# 使用PyJanitor进行列名标准化
df_cleaned = df.clean_names()print(df_cleaned)

3.2 列名标准化

PyJanitor的clean_names方法用于将DataFrame的列名标准化为小写字母、去除空格等,以提高数据处理的一致性。

import pandas as pd
import janitor# 示例数据
data = {'First Name': ['John', 'Jane', 'Jim'], 'Last Name': ['Doe', 'Smith', 'Brown']}# 创建DataFrame
df = pd.DataFrame(data)# 使用PyJanitor进行列名标准化
df_cleaned = df.clean_names()print(df_cleaned)

3.3 数据格式转换技术

PyJanitor还提供了用于数据格式转换的方法,例如convert_excel_date用于将Excel日期转换为Python的datetime对象。

import pandas as pd
import janitor# 示例数据
data = {'Date': [44271, 44272, 44273], 'Value': [10, 15, 20]}# 创建DataFrame
df = pd.DataFrame(data)# 使用PyJanitor进行Excel日期转换
df_converted = df.convert_excel_date('Date')print(df_converted)

PyJanitor的功能确实使数据处理更高效。或许可以继续探索一些更复杂的数据清理技术或特定场景下的运用。

3.4 缺失值处理

PyJanitor提供了处理缺失值的便捷方法,比如fill_empty函数,可以填充空值。

import pandas as pd
import janitor# 示例数据
data = {'A': [1, None, 3], 'B': [4, 5, None]}# 创建DataFrame
df = pd.DataFrame(data)# 使用PyJanitor填充空值
df_filled = df.fill_empty(columns=['A', 'B'], value=0)print(df_filled)

这个例子展示了如何使用fill_empty方法填充DataFrame中指定列的空值为特定数值。

3.5 多表连接与合并

PyJanitor也提供了简单易用的多表连接与合并功能,比如join函数。

import pandas as pd
import janitor# 示例数据
data1 = {'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']}
data2 = {'ID': [2, 3, 4], 'Age': [25, 30, 35]}# 创建DataFrame
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)# 使用PyJanitor进行表连接
df_merged = df1.join(df2, on='ID', how='inner')print(df_merged)

这个例子展示了如何使用join方法根据指定的列进行表连接,按照内连接方式合并两个DataFrame。

这些技巧可以帮助你更灵活地应用PyJanitor,处理缺失值、进行表连接等操作,使数据清理和整理更为高效。

4. Pandas库

4.1 数据框处理

Pandas是一个强大的数据分析库,提供了DataFrame对象用于处理和分析数据。以下是一个简单的Pandas示例,演示如何使用DataFrame处理数据:

import pandas as pd# 示例数据
data = {'Name': ['John', 'Jane', 'Jim'],'Age': [25, 30, 22],'Salary': [50000, 60000, 45000]}# 创建DataFrame
df = pd.DataFrame(data)# 显示DataFrame
print("原始数据:")
print(df)# 访问列数据
ages = df['Age']
print("\n年龄列数据:")
print(ages)# 计算平均薪水
average_salary = df['Salary'].mean()
print("\n平均薪水:", average_salary)

4.2 缺失值处理

Pandas提供了处理缺失值的方法,例如dropna()用于删除包含缺失值的行,fillna()用于填充缺失值。以下是一个简单的演示:

import pandas as pd# 示例数据
data = {'Name': ['John', 'Jane', None],'Age': [25, None, 22],'Salary': [50000, 60000, 45000]}# 创建DataFrame
df = pd.DataFrame(data)# 显示DataFrame
print("原始数据:")
print(df)# 删除包含缺失值的行
df_cleaned = df.dropna()# 显示处理后的DataFrame
print("\n处理后的数据(删除缺失值):")
print(df_cleaned)# 填充缺失值
df_filled = df.fillna(value={'Name': 'Unknown', 'Age': df['Age'].mean()})# 显示处理后的DataFrame
print("\n处理后的数据(填充缺失值):")
print(df_filled)

4.3 数据合并和连接技术

Pandas提供了多种数据合并和连接的方法,例如merge()用于基于列进行合并,concat()用于基于索引进行合并。以下是一个简单的示例:

import pandas as pd# 示例数据
data1 = {'ID': [1, 2, 3], 'Name': ['John', 'Jane', 'Jim']}
data2 = {'ID': [2, 3, 4], 'Salary': [60000, 45000, 70000]}# 创建两个DataFrame
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)# 使用merge进行基于列的合并
merged_df = pd.merge(df1, df2, on='ID', how='inner')# 显示合并后的DataFrame
print("合并后的数据:")
print(merged_df)

4.4 数据分组和聚合操作

Pandas的分组和聚合操作使得对数据进行统计和分析更加方便。以下是一个简单的演示:

import pandas as pd# 示例数据
data = {'Department': ['HR', 'IT', 'HR', 'IT', 'IT'],'Salary': [50000, 60000, 55000, 65000, 70000]}# 创建DataFrame
df = pd.DataFrame(data)# 按部门分组,计算平均薪水
average_salary_by_department = df.groupby('Department')['Salary'].mean()# 显示分组和聚合结果
print("按部门分组,计算平均薪水:")
print(average_salary_by_department)

Pandas确实是一个非常强大的数据处理工具。或许可以继续探索一些高级功能或更广泛的应用场景。

4.5 时间序列处理

Pandas对时间序列数据的处理非常方便,比如to_datetime()函数可以将字符串转换为日期时间对象,resample()函数用于时间重采样。以下是一个简单的时间序列处理示例:

import pandas as pd# 示例时间序列数据
dates = ['2023-01-01', '2023-01-02', '2023-01-03']
values = [100, 120, 90]# 创建时间序列DataFrame
time_series = pd.DataFrame({'Date': dates, 'Value': values})# 将日期列转换为日期时间对象
time_series['Date'] = pd.to_datetime(time_series['Date'])# 将日期列设置为索引
time_series.set_index('Date', inplace=True)# 进行每日重采样计算均值
daily_mean = time_series.resample('D').mean()# 显示每日均值
print("每日均值:")
print(daily_mean)

4.6 数据透视表与交叉表

Pandas可以轻松创建数据透视表和交叉表,方便进行数据分析和汇总。以下是一个简单的示例:

import pandas as pd# 示例数据
data = {'Department': ['HR', 'IT', 'HR', 'IT', 'IT'],'Gender': ['M', 'F', 'M', 'M', 'F'],'Salary': [50000, 60000, 55000, 65000, 70000]}# 创建DataFrame
df = pd.DataFrame(data)# 创建数据透视表
pivot_table = pd.pivot_table(df, values='Salary', index='Department', columns='Gender', aggfunc='mean')# 显示数据透视表
print("数据透视表:")
print(pivot_table)

这个示例展示了如何使用pivot_table()函数创建一个简单的数据透视表,对部门和性别进行薪水的平均值汇总。

这些高级功能和更广泛的应用场景能够帮助你更全面地了解Pandas库的强大之处,从时间序列处理到数据透视表的应用,扩展了解数据分析和处理的多种可能性。

5. NumPy库

5.1 数组操作与处理

NumPy是用于科学计算的基础库,提供了强大的数组操作功能。以下是一个简单的NumPy示例:

import numpy as np# 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5])# 数组运算
arr_squared = arr ** 2# 显示结果
print("原始数组:", arr)
print("数组平方:", arr_squared)

5.2 数学函数和统计方法

NumPy包含丰富的数学函数和统计方法,例如mean()用于计算平均值,std()用于计算标准差。以下是一个简单的演示:

import numpy as np# 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5])# 计算平均值和标准差
average_value = np.mean(arr)
std_deviation = np.std(arr)# 显示结果
print("数组:", arr)
print("平均值:", average_value)
print("标准差:", std_deviation)

5.3 线性代数操作

NumPy提供了丰富的线性代数操作,例如dot()用于矩阵相乘。以下是一个简单的示例:

import numpy as np# 创建两个矩阵
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])# 矩阵相乘
result_matrix = np.dot(matrix1, matrix2)# 显示结果
print("矩阵1:")
print(matrix1)
print("\n矩阵2:")
print(matrix2)
print("\n矩阵相乘结果:")
print(result_matrix)

5.4 数据类型转换技术

NumPy允许进行数据类型的转换,例如将整数数组转换为浮点数数组。以下是一个简单的演示:

import numpy as np# 创建整数数组
int_array = np.array([1, 2, 3, 4, 5])# 将整数数组转换为浮点数数组
float_array = int_array.astype(float)# 显示结果
print("整数数组:", int_array)
print("浮点数数组:", float_array)

NumPy的这些基础功能对于科学计算和数据处理确实非常有用。或许你可以深入探索一些高级的功能或者更多实际应用场景。

5.5 随机数生成

NumPy内置了丰富的随机数生成功能,比如random.rand()用于生成服从均匀分布的随机数组。以下是一个简单的示例:

import numpy as np# 生成随机数组
random_array = np.random.rand(5)# 显示随机数组
print("随机数组:", random_array)

5.6 数据切片和索引技巧

NumPy允许灵活地进行数据切片和索引操作,以便获取特定部分的数据。以下是一个简单的演示:

import numpy as np# 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5])# 数据切片
slice_arr = arr[2:4]# 显示切片结果
print("原始数组:", arr)
print("切片结果:", slice_arr)

5.7 数组操作与广播机制

NumPy的广播机制能够对不同形状的数组进行计算,使得操作更加灵活。以下是一个简单的示例:

import numpy as np# 创建NumPy数组
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([10, 20, 30])# 使用广播机制进行数组运算
result = arr1 * arr2# 显示运算结果
print("数组1:")
print(arr1)
print("\n数组2:")
print(arr2)
print("\n广播运算结果:")
print(result)

这些高级功能和实际应用场景可以帮助你更全面地理解和利用NumPy库,从随机数生成到数据切片与广播机制的应用,扩展了解科学计算和数据处理的多种可能性。

6. Scikit-learn库

6.1 特征缩放与标准化

Scikit-learn提供了用于特征缩放和标准化的方法,例如MinMaxScalerStandardScaler。以下是一个简单的演示:

from sklearn.preprocessing import MinMaxScaler, StandardScaler
import numpy as np# 示例数据
data = np.array([[1, 2], [3, 4], [5, 6]])# 使用MinMaxScaler进行特征缩放
minmax_scaler = MinMaxScaler()
minmax_scaled_data = minmax_scaler.fit_transform(data)# 使用StandardScaler进行标准化
standard_scaler = StandardScaler()
standard_scaled_data = standard_scaler.fit_transform(data)# 显示结果
print("原始数据:")
print(data)print("\nMinMax缩放后的数据:")
print(minmax_scaled_data)print("\n标准化后的数据:")
print(standard_scaled_data)

6.2 异常值检测

Scikit-learn中的IsolationForest模型可以用于检测数据中的异常值。以下是一个简单的演示:

from sklearn.ensemble import IsolationForest
import numpy as np# 示例数据,包含一个异常值
data = np.array([[1], [2], [3], [100]])# 创建IsolationForest模型
isolation_forest = IsolationForest(contamination=0.25)# 训练模型并预测异常值
outliers = isolation_forest.fit_predict(data)# 显示结果
print("原始数据:")
print(data)print("\n异常值预测结果:")
print(outliers)

6.3 数据降维技术

Scikit-learn提供了多种数据降维的方法,例如主成分分析(PCA)。以下是一个简单的PCA演示:

from sklearn.decomposition import PCA
import numpy as np# 示例数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建PCA模型,降维到2维
pca = PCA(n_components=2)# 拟合模型并进行数据降维
reduced_data = pca.fit_transform(data)# 显示结果
print("原始数据:")
print(data)print("\n降维后的数据:")
print(reduced_data)

这些示例代码涵盖了数据清洗和预处理的多个方面,使用了各种Python库,包括Dedupe、FuzzyWuzzy、PyJanitor、Pandas、NumPy和Scikit-learn。这些库提供了丰富的工具和功能,使数据科学家能够有效地处理和准备数据,为后续的分析和建模提供高质量的数据基础。
Scikit-learn提供的这些功能确实能够帮助进行特征处理、异常值检测和数据降维。或许你可以继续探索一些模型训练、评估或超参数调优等方面的内容。

6.4 模型训练与评估

Scikit-learn提供了多种机器学习模型,比如LinearRegressionDecisionTreeClassifier等,以及用于模型评估的方法,比如cross_val_score。以下是一个简单的线性回归模型的示例:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np# 示例数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建线性回归模型
model = LinearRegression()# 拟合模型
model.fit(X_train, y_train)# 预测
predictions = model.predict(X_test)# 评估模型
mse = mean_squared_error(y_test, predictions)# 显示结果
print("预测结果:", predictions)
print("\n均方误差:", mse)

6.5 超参数调优

通过网格搜索(GridSearchCV)或随机搜索(RandomizedSearchCV),Scikit-learn可以帮助你调优模型的超参数。以下是一个简单的演示:

from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import GridSearchCV
import numpy as np# 示例数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])# 创建随机森林回归器
model = RandomForestRegressor()# 定义超参数网格
param_grid = {'n_estimators': [10, 50, 100],'max_depth': [None, 5, 10]}# 创建网格搜索对象
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=3)# 拟合模型
grid_search.fit(X, y)# 获取最优参数和最佳得分
best_params = grid_search.best_params_
best_score = grid_search.best_score_# 显示结果
print("最佳参数:", best_params)
print("\n最佳得分:", best_score)

这些技术可以帮助你更好地训练模型、评估模型性能,甚至通过超参数调优提升模型的性能,是机器学习中重要的一步。

总结

在数据科学的征程中,数据清洗与预处理是通往高效模型和准确分析的关键一环。我们深入研究了Dedupe、FuzzyWuzzy、PyJanitor、Pandas、NumPy和Scikit-learn等Python库,它们为数据科学家提供了强大的工具,使得清洗、整理和分析数据变得更加容易。通过掌握这些库的使用方法,你将在面对复杂的数据挑战时游刃有余,为数据科学领域的发展贡献一份力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机相关知识点

在STM32上运行FreeRTOS,十分简练的小文章FreeRTOS(STM32CubeMX)_cubemx freertos-CSDN博客 STM32CubeMX转Keil使用STM32CubeMX生成Keil工程并完成流水灯-CSDN博客

unity PDFRender Curved UI3.3

【PDF】PDFRender 链接:https://pan.baidu.com/s/1wSlmfiWTAHZKqEESxuMH6Q 提取码:csdn 【曲面ui】 Curved UI3.3 链接:https://pan.baidu.com/s/1uNZySJTW0-pPwi2FTE6fgA 提取码:csdn

【unity小技巧】FPS游戏实现相机的震动、后坐力和偏移

最终效果 文章目录 最终效果前言相机的震动实现后坐力和偏移相机震动相机震动脚本换弹节点震动 武器射击后退效果完结 前言 关于后坐力之前其实已经分享了一个:FPS游戏后坐力制作思路 但是实现起来比较复杂,如果你只是想要简单的实现,可以看…

Linux ssh 实现远程免密登录

一、背景 我搭建了一个 zookeeper 集群,写了一个 shell 脚本来控制集群的启动和关闭,但是我发现每次我执行 shell 脚本的时候,都需要我输入各个服务器的密码才可以运行,感觉很麻烦。shell 脚本里面连接其他服务器用的就是 ssh 的方…

Linux安装JDK和Maven并配置环境变量

文章目录 一、安装JDK并配置环境变量二、安装maven并配置环境变量 一、安装JDK并配置环境变量 将JDK的安装包上传到Linux系统的usr/local目录 使用xftp上传文件 解压JDK的压缩包 xshell连接到云主机 [roottheo ~]# cd /usr/local[roottheo local]# ls aegis apache-tomcat-…

equals()方法和“==”运算符

equals()equals()方法和“”运算符比较 回到顶部 equals() 超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下: public boolean equals(Object obj) {return (this obj);} 我们知道所有的对象都拥有标识(内存…

使用LVM分区方式安装Manjaro发行版

使用LVM分区方式安装Manjaro发行版 为什么单独介绍LVM方式呢? 主要是由于使用系统的图形安装工具创建卷组会出问题,会导致图形安装工具直接挂掉,唯一的方法是提前手动创建好卷组。 GPT分区表 分区表有: MBR(主引导记录分区表)…

【华为OD真题 Python】两数之和绝对值最小

文章目录 题目描述输入描述输出描述示例1输入输出说明代码实现题目描述 给定一个从小到大的有序整数序列(存在正整数和负整数)数组 nums ,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个绝对值。 每种输入只会对应一个答案。但是,数组中…

性能优化-OpenMP概述(一)-宏观全面理解OpenMP

本文旨在从宏观角度来介绍OpenMP的原理、编程模型、以及在各个领域的应用、使用、希望读者能够从本文整体上了解OpenMP。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开发基础…

【算法】链表-20240105

这里写目录标题 一、LCR 023. 相交链表二、142. 环形链表 II 一、LCR 023. 相交链表 给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 提示: listA 中节点数目为 m list…

window 下载安装 Studio 3T

这里 我们先访问官网 https://studio3t.com/ 然后 他会弹出提示 如果您同意使用cookies和类似技术进行市场研究或广告目的,并希望获得额外功能,您可以点击“Accept all”按钮。 如果您不同意使用cookies和类似技术进行上述目的,您可以点击“…

大模型的实践应用16-一种针对大型预训练模型的微调技巧:Adapter-Tuning方法的实战应用,原理详细介绍

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用16-一种针对大型预训练模型的微调技巧:Adapter-Tuning方法的实战应用,原理详细介绍。Adapter-Tuning 是一种针对大型预训练模型微调的技术,它可以在保持模型参数数量较小的情况下增加模型的表现。该技术将适配器插入…

ffmpeg 改变帧率,分辨率,时长等命令

ffmpeg -i elva.mp4 -ss 00:00:20 -t 00:00:30 -c:v copy -c:a copy output1.mp4 视频截取,开始时间和时长,-ss 00:00:20 -t 00:00:30 ffmpeg -i output1.mp4 -c:v libx265 output265.mp4 -c:v libx265,264转265 ffmpeg -i output1.mp4 -c:v libx264 output264.mp4 …

Java面试项目推荐,异构数据源数据流转服务DatalinkX

前言 作为一个年迈的夹娃练习生,每次到了春招秋招面试实习生时都能看到一批简历,十个简历里得有七八个是写商城或者外卖项目。 不由得想到了我大四那会,由于没有啥项目经验,又想借一个质量高点的项目通过简历初筛,就…

CTFhub-Web-Web前置技能-“302跳转“

题目信息 HTTP临时重定向,题目截图如下所示: 分析过程 看到跳转路径为:http://challenge-d1a96d97eaecf029.sandbox.ctfhub.com:10800/index.html 分析可能存在重定向问题,如果要想获得flag,则可能存在http://chal…

nodejs中ffcreator启动

ffcreator安装 安装环境及依赖 node.js环境FFmpegnode-canvasheadless-gl 安装FFCreator npm i ffcreator --save启动项目 有显示设备的电脑:npm start无显示设置的服务器:xvfb-run -s "-ac -screen 0 1280x1024x24" npm start next.js中…

Linux平台下gcc安装升级

文章目录 一、下载gcc源码二、配置三、编译四、安装 一、下载gcc源码 到gcc官网下载所要安装的版本,例如:gcc-5.5.0。 二、配置 首先确保系统已经安装了必要的依赖项。在命令行中运行以下命令来更新包管理器并安装所需的构建工具: sudo a…

element中Tree 树形控件实现多选、展开折叠、全选全不选、父子联动、默认展开、默认选中、默认禁用、自定义节点内容、可拖拽节点、手风琴模式

目录 1.代码实现2. 效果图3. 使用到的部分属性说明4. 更多属性配置查看element官网 1.代码实现 <template><div class"TreePage"><el-checkboxv-model"menuExpand"change"handleCheckedTreeExpand($event, menu)">展开/折叠&l…

java 使用 jtransforms 傅里叶库通过时域转频域实现wav 音频的加速与变慢效果

引入 maven 依赖&#xff1a;<dependency><groupId>net.sourceforge.jtransforms</groupId><artifactId>jtransforms</artifactId><version>2.4.0</version></dependency> FourierTransformTest.java&#xff1a; import edu.…

一、Vue3基础[常用的循环]

一、循环 1. filter 解释&#xff1a;filter 方法会创建一个新的数组&#xff0c;其中包含满足指定条件的所有元素。这个方法非常适合循环遍历数组并根据特定条件过滤元素的情况。例如&#xff0c;可以使用 filter 方法来找出数组中所有大于特定值的元素&#xff0c;或者找出…