关于数据分析中NumPy,Pandas,看完这一篇基本够了

news2024/9/27 21:24:29

前言

数据分析是Python的重要应用领域之一:Python在数据分析领域有着广泛的应用,许多数据科学家和分析师使用Python作为主要的数据分析工具。学好数据分析可以让你更好地应用Python来解决实际问题,并提升在数据分析领域的竞争力。

在当今信息爆炸的时代,数据分析能力成为了一种重要的技能。无论是在工作中还是个人生活中,我们都需要从大量的数据中提取有用的信息和洞察,并做出相应的决策。学好数据分析可以帮助你更好地理解和利用数据,提高决策的准确性和效率。

数据分析可以帮助我们从数据中发现规律、趋势和模式,从而做出更加明智的决策和创新。学好数据分析可以让你更好地理解数据,发现数据中的价值,并将其应用于实际的业务和创新中。

而且数据分析是许多其他领域的基础,如机器学习、人工智能、金融分析、市场营销等。学好数据分析可以为你进一步学习和应用这些领域提供坚实的基础。

学习数据分析可以培养你的逻辑思维、问题解决能力和创新思维。数据分析需要你从数据中提取有用的信息、进行推理和推断,并做出相应的结论。这种思维方式在许多其他领域也是非常有价值的。

总之,学好数据分析可以让你更好地应用Python解决实际问题,提高决策的准确性和效率,并为你进一步学习和应用其他领域提供坚实的基础。

关注公众号:python技术训练营,学习快人一步

在这里插入图片描述

内容

1.面试专题几十个大厂面试题
2.入门基础教程
3.11模块零基础到精通笔记
4.百个项目实战+爬虫教程+代码
5.量化交易,机器学习,深度学习
6.Python游戏源码
7.交流学习
8.了解接单市场
9.DNF自动识别打怪
10.3263页学习资料

接下来我们就详细介绍:NumPy,Pandas的种种

一丶NumPy篇

1.NumPy基本类型

在数据分析中,NumPy(Numerical Python)是一个重要的Python库,它提供了高性能的多维数组对象和用于处理这些数组的函数。以下是NumPy中的一些基本数据类型:

数值类型(Numeric Types):

  • int:整数类型,如int8、int16、int32、int64等。
  • uint:无符号整数类型,如uint8、uint16、uint32、uint64等。
  • float:浮点数类型,如float16、float32、float64等。
  • complex:复数类型,如complex64、complex128等。

布尔类型(Boolean Type):

  • bool:布尔类型,只有两个值True和False。

字符串类型(String Type):

  • string:字符串类型,用于存储文本数据。

时间类型(Datetime Type):

  • datetime64:日期和时间类型,用于存储日期和时间数据。

对象类型(Object Type):

  • object:对象类型,可以存储任意Python对象。

这些数据类型可以用于创建NumPy数组,通过指定dtype参数来指定数组的数据类型。例如,可以使用np.array函数创建一个整数类型的数组:

import numpy as np

arr = np.array([1, 2, 3, 4], dtype=np.int32)
print(arr.dtype)  # 输出 int32

在数据分析中,根据具体的需求和数据类型的特点,选择合适的数据类型可以提高计算效率和节省内存空间。NumPy还提供了丰富的函数和方法来处理这些不同类型的数据,例如数值计算、数组操作、统计分析等。

2.NumPy基础数据结构

NumPy(Numerical Python)是Python中用于科学计算和数据分析的重要库。它提供了高性能的多维数组对象(ndarray)和用于处理这些数组的函数。以下是NumPy中的一些基础数据结构:

ndarray(N-dimensional Array)
ndarray是NumPy中最重要的数据结构,它是一个多维数组对象。ndarray可以是一维、二维或更高维的数组,可以存储相同类型的元素。ndarray提供了快速的数值计算和向量化操作,是进行数据分析的基础。

Scalar(标量)
标量是NumPy中的基本数据类型,表示单个的数值。标量可以是整数、浮点数、布尔值等。

Vector(向量)
向量是一维的ndarray数组,表示一列数值。向量可以通过一维数组创建,例如np.array([1, 2, 3])。

Matrix(矩阵)
矩阵是二维的ndarray数组,表示一个二维表格的数值。矩阵可以通过二维数组创建,例如np.array([[1, 2], [3, 4]])。

Tensor(张量)
张量是NumPy中的高维数组,可以是三维、四维或更高维的数组。张量在深度学习和神经网络中经常使用。

多维数组
np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]):创建一个三维数组,包含两个二维数组。

数组属性

  • shape:数组的维度信息,返回一个元组,例如(2, 3)表示2行3列的数组。
  • dtype:数组元素的数据类型。

数组操作

  • indexing和slicing:通过索引和切片操作获取和修改数组元素。
  • reshape:改变数组的形状。
  • transpose:交换数组的维度。

数学运算

  • 加法、减法、乘法、除法等数学运算。
  • 常用函数:例如np.sum()np.mean()np.max()等用于对数组进行统计计算。

除了基本的数据结构,NumPy还提供了很多高级功能,如广播(broadcasting)、向量化操作等,可以大大提高数据分析的效率。

使用NumPy进行数据分析时,通常还会结合其他库,如Pandas、Matplotlib等,以实现更强大的数据分析和可视化功能。

3.NumPy通用函数

NumPy(Numerical Python)是Python中用于科学计算和数据分析的重要库。它提供了许多通用函数(Universal Functions,简称ufuncs),用于对NumPy数组进行元素级别的操作和计算。以下是一些常用的NumPy通用函数及其功能:

数学函数:

  • np.abs(arr):计算数组元素的绝对值。
  • np.sqrt(arr):计算数组元素的平方根。
  • np.exp(arr):计算数组元素的指数。
  • np.log(arr):计算数组元素的自然对数。
  • np.sin(arr)np.cos(arr)np.tan(arr):计算数组元素的正弦、余弦和正切值。
  • np.arcsin(arr)np.arccos(arr)np.arctan(arr):计算数组元素的反正弦、反余弦和反正切值。

统计函数:

  • np.mean(arr):计算数组元素的平均值。
  • np.median(arr):计算数组元素的中位数。
  • np.std(arr):计算数组元素的标准差。
  • np.var(arr):计算数组元素的方差。
  • np.min(arr)np.max(arr):计算数组元素的最小值和最大值。
  • np.sum(arr):计算数组元素的总和。

逻辑函数:

  • np.logical_and(arr1, arr2):对两个数组进行逻辑与操作。
  • np.logical_or(arr1, arr2):对两个数组进行逻辑或操作。
  • np.logical_not(arr):对数组进行逻辑非操作。

形状操作函数:

  • np.reshape(arr, new_shape):改变数组的形状。
  • np.transpose(arr):交换数组的维度。
  • np.flatten(arr):将多维数组转换为一维数组。

其他函数:

  • np.concatenate((arr1, arr2), axis):沿指定轴连接两个或多个数组。
  • np.sort(arr):对数组进行排序。
  • np.unique(arr):返回数组中的唯一值。

这些通用函数可以对NumPy数组进行各种元素级别的操作和计算,提供了丰富的功能来处理和分析数据。通过熟练掌握这些函数,可以高效地进行数据分析和科学计算。

4.NumPy索引及切片

在NumPy中,索引和切片是对数组进行访问和操作的重要方式。以下是对NumPy数组进行索引和切片的详细分析:

索引:

  • 一维数组索引:可以使用整数索引访问一维数组中的元素。例如,arr[0]表示访问一维数组arr中的第一个元素。
  • 多维数组索引:可以使用逗号分隔的整数索引访问多维数组中的元素。例如,arr[0, 1]表示访问多维数组arr中的第一行第二列的元素。

切片:

  • 一维数组切片:可以使用冒号(:)进行切片操作。例如,arr[1:4]表示从一维数组arr的索引1开始到索引4之前的元素(不包括索引4)。
  • 多维数组切片:可以使用逗号分隔的冒号(:)进行切片操作。例如,arr[:, 1:4]表示从多维数组arr的所有行中,从索引1开始到索引4之前的列(不包括索引4)。

布尔索引:

可以使用布尔数组作为索引来选择满足特定条件的元素。例如,arr[arr > 5]表示选择数组arr中大于5的元素。

花式索引:

可以使用整数数组作为索引来选择指定位置的元素。例如,arr[[0, 2, 4]]表示选择数组arr中索引为0、2和4的元素。

需要注意的是,索引和切片操作返回的是原始数组的视图(view),而不是副本(copy)。这意味着对视图的修改会影响原始数组。如果需要创建副本,可以使用arr.copy()方法。

5.NumPy随机数

在数据分析中,NumPy的random模块提供了生成随机数的函数,用于模拟随机实验、生成随机样本和进行随机抽样等操作。以下是NumPy中常用的随机数函数的详细分析:

生成随机数:

  • np.random.rand(shape):生成指定形状的[0, 1)之间的均匀分布随机数。
  • np.random.randn(shape):生成指定形状的标准正态分布(均值为0,标准差为1)的随机数。
  • np.random.randint(low, high, size):生成指定范围内的整数随机数。
  • np.random.random_sample(shape):生成指定形状的[0, 1)之间的均匀分布随机数。
  • np.random.random(shape):生成指定形状的[0, 1)之间的均匀分布随机数。
  • np.random.uniform(low, high, size):生成指定范围内的均匀分布随机数。
  • np.random.normal(loc, scale, size):生成指定均值和标准差的正态分布随机数。
  • np.random.standard_normal(size):生成标准正态分布(均值为0,标准差为1)的随机数。

随机抽样:

  • np.random.choice(a, size, replace, p):从给定的一维数组a中进行随机抽样。
  • np.random.shuffle(arr):对数组进行原地随机重排。
  • np.random.permutation(arr):返回一个随机重排的数组副本。

随机种子:

  • np.random.seed(seed):设置随机数生成器的种子,用于生成可重复的随机数序列。

这些随机数函数可以用于生成各种类型的随机数,满足不同的需求。通过灵活使用这些函数,可以进行模拟实验、生成随机样本、进行随机抽样等操作,支持数据分析和统计推断的应用。

6.NumPy数据的输入输出

在数据分析中,NumPy提供了多种方式来进行数据的输入和输出。以下是NumPy中常用的数据输入输出方式的详细解释:

从文件读取数据:

  • np.loadtxt(fname, delimiter=None, dtype=float):从文本文件中加载数据到NumPy数组。可以指定分隔符和数据类型。
  • np.genfromtxt(fname, delimiter=None, dtype=float):从文本文件中加载数据到NumPy数组,支持缺失值处理和数据类型推断。
  • np.fromfile(file, dtype=float, count=-1, sep=''):从二进制文件中加载数据到NumPy数组。

将数据写入文件:

  • np.savetxt(fname, X, fmt='%.18e', delimiter=' '):将NumPy数组保存为文本文件。可以指定格式和分隔符。

  • np.savetxt(fname, X, fmt='%.18e', delimiter=' ', header='', footer='', comments='# '):将NumPy数组保存为文本文件,并添加头部、尾部和注释。
    从CSV文件读取数据:

  • np.genfromtxt(fname, delimiter=',', dtype=None, names=True):从CSV文件中加载数据到NumPy结构化数组。可以指定分隔符、数据类型和列名。

将数据写入CSV文件:

  • np.savetxt(fname, X, delimiter=',', fmt='%.18e', header='', footer='', comments='# '):将NumPy数组保存为CSV文件。可以指定分隔符、格式、头部、尾部和注释。

从数据库读取数据:

  • np.frombuffer(buffer, dtype=float, count=-1, offset=0):从缓冲区中加载数据到NumPy数组。
  • np.fromstring(string, dtype=float, count=-1, sep=''):从字符串中加载数据到NumPy数组。

将数据写入数据库:

  • np.ndarray.tofile(fid, sep='', format='%s'):将NumPy数组保存为二进制文件。

这些数据输入输出函数提供了灵活的方式来读取和写入数据,支持多种数据格式和数据源。通过使用这些函数,可以方便地进行数据的导入和导出,与其他数据源进行交互,并进行数据分析和处理。

二丶Pandas篇

1.pandas核心概念

在数据分析中,pandas是一个重要的Python库,提供了高效的数据结构和数据分析工具。以下是pandas的核心概念的详细解释:

Series(序列):

Series是pandas中的一维标记数组,类似于带有标签的一维数组。它由两个数组组成,一个用于存储数据,另一个用于存储标签(索引)。

Series可以通过多种方式创建,例如从列表、数组、字典等。

Series提供了许多方法和属性,用于对数据进行索引、切片、过滤、计算等操作。

DataFrame(数据框):

DataFrame是pandas中的二维表格数据结构,类似于电子表格或SQL中的表。它由行索引和列索引组成,每列可以是不同的数据类型。

DataFrame可以通过多种方式创建,例如从二维数组、字典、CSV文件等。

DataFrame提供了丰富的方法和属性,用于对数据进行索引、切片、过滤、计算、合并、重塑等操作。

Index(索引):

Index是pandas中的标签数组,用于标识Series或DataFrame中的行或列。

Index可以是整数、字符串、日期等类型,可以是唯一的或重复的。

Index提供了许多方法和属性,用于对索引进行操作和处理。

数据对齐:

pandas的一个重要特性是数据对齐,即在进行操作时,pandas会自动根据索引对数据进行对齐,确保数据的正确对应。

数据对齐使得在处理不完整或不规则数据时更加方便,可以避免许多错误和麻烦。

缺失数据处理:

pandas提供了灵活的方法来处理缺失数据,例如使用NaN(Not a Number)表示缺失值。

可以使用方法如isnull()notnull()dropna()fillna()等来检测和处理缺失数据。

数据分组和聚合:

pandas提供了强大的数据分组和聚合功能,可以根据某些条件将数据分组,并对每个组进行聚合操作,如求和、平均值、计数等。

可以使用方法如groupby()agg()transform()等来进行数据分组和聚合操作。

这些核心概念是pandas在数据分析中的基础,通过灵活运用这些概念和相应的方法,可以高效地进行数据处理、分析和建模。

2.数据结构series索引

在pandas中,Series是一种一维的数据结构,类似于带有标签的数组。Series具有两个主要的组成部分:数据和索引。以下是对pandas Series索引的详细解释:

索引标签:

Series的索引是一组标签,用于标识每个元素。索引可以是整数、字符串、日期等类型。

索引标签可以通过series.index属性访问。

默认索引:

如果没有显式指定索引标签,pandas会自动创建一个默认的整数索引,从0开始递增。

默认索引可以通过series.index属性访问。

自定义索引:

可以通过传递一个索引列表来创建自定义索引的Series。例如,series = pd.Series(data, index=['a', 'b', 'c'])

自定义索引可以是唯一的或重复的。

索引操作:

可以使用索引标签来访问Series中的元素。例如,series['a']表示访问索引标签为’a’的元素。

可以使用整数索引来访问Series中的元素。例如,series[0]表示访问索引为0的元素。

可以使用切片操作来访问Series中的多个元素。例如,series['a':'c']表示访问索引标签从’a’到’c’的元素。

索引对齐:

在进行操作时,pandas会自动根据索引对Series进行对齐,确保数据的正确对应。

索引对齐使得在处理不完整或不规则数据时更加方便,可以避免许多错误和麻烦。

索引修改:

可以通过重新赋值的方式修改Series的索引。例如,series.index = ['x', 'y', 'z']

通过灵活运用Series的索引,可以方便地对数据进行访问、操作和分析。索引提供了一种标签化的方式来标识和定位数据,使得数据处理更加直观和高效。

3.series基础技巧

当进行数据分析时,pandas的Series是一个非常有用的数据结构。以下是一些常见的Series基础技巧的详细解释:

创建Series:

可以使用pd.Series(data, index)函数创建Series,其中data可以是列表、数组、字典等,index是可选的索引标签。

例如,s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])创建了一个带有自定义索引的Series。

访问Series数据:

可以使用索引标签或整数索引来访问Series中的元素。例如,s[‘a’]或s[0]都可以访问第一个元素。

可以使用切片操作来访问Series中的多个元素。例如,s[‘a’:‘c’]表示访问索引标签从’a’到’c’的元素。

Series运算:

可以对Series进行基本的数学运算,如加法、减法、乘法和除法。运算会根据索引对齐数据。

例如,s1 + s2会对两个Series对象进行元素级别的加法运算,并根据索引对齐数据。

筛选数据:

可以使用布尔索引来筛选Series中的数据。例如,s[s > 2]会返回满足条件的元素。

可以使用isin()方法来筛选Series中包含在给定值列表中的元素。

缺失数据处理:

可以使用isnull()notnull()方法来检测Series中的缺失数据。

可以使用dropna()方法来删除Series中的缺失数据。

可以使用fillna()方法来填充Series中的缺失数据。

排序和排名:

可以使用sort_values()方法对Series进行排序。

可以使用rank()方法对Series中的元素进行排名。

统计分析:

可以使用describe()方法获取Series的统计摘要信息,如均值、标准差、最小值、最大值等。

可以使用sum()mean()median()std()等方法计算Series的总和、平均值、中位数、标准差等。

这些基础技巧可以帮助您更好地使用pandas的Series进行数据分析和处理。通过灵活运用这些技巧,可以轻松地操作和分析Series中的数据。

4.数据结构Dataframe基本概念及创建

在数据分析中,pandas的DataFrame是一个二维的表格型数据结构,类似于电子表格或SQL中的表。DataFrame由行索引和列索引组成,每列可以是不同的数据类型。以下是对pandas DataFrame的基本概念和创建方式的详细解释:

DataFrame的基本概念:

DataFrame是一个二维的数据结构,由行和列组成。行索引用于标识和访问DataFrame中的行,列索引用于标识和访问DataFrame中的列。DataFrame中的每列可以是不同的数据类型,如整数、浮点数、字符串等。

创建DataFrame的方式:

从列表或数组创建:可以使用pd.DataFrame(data, index, columns)函数从列表或数组创建DataFrame。其中data可以是列表、数组、字典等,index是行索引,columns是列索引。

  • 从字典创建:可以使用pd.DataFrame(dict)函数从字典创建DataFrame。字典的键将成为列索引,字典的值将成为列数据。
  • 从CSV文件创建:可以使用pd.read_csv(file)函数从CSV文件创建DataFrame。
  • 从数据库查询结果创建:可以使用pd.read_sql(query, connection)函数从数据库查询结果创建DataFrame。

DataFrame的属性和方法:

  • df.shape:返回DataFrame的行数和列数。
  • df.head(n):返回DataFrame的前n行,默认为5行。
  • df.tail(n):返回DataFrame的后n行,默认为5行。
  • df.columns:返回DataFrame的列索引。
  • df.index:返回DataFrame的行索引。
  • df.info():显示DataFrame的基本信息,包括列名、数据类型、非空值数量等。
  • df.describe():显示DataFrame的统计摘要信息,包括计数、均值、标准差、最小值、最大值等。

通过灵活运用这些创建DataFrame的方式和使用DataFrame的属性和方法,可以方便地进行数据分析和处理。DataFrame提供了丰富的功能和方法,支持数据的索引、切片、过滤、计算、合并、重塑等操作。

6.Dataframe索引

在pandas中,DataFrame是一个二维的表格型数据结构,由行索引和列索引组成。以下是对pandas DataFrame索引的详细解释:

行索引:

行索引用于标识和访问DataFrame中的行。默认情况下,行索引是从0开始的整数索引,可以通过df.index属性访问。可以使用df.loc[label]df.iloc[index]来访问具有特定标签或整数索引的行。

列索引:

列索引用于标识和访问DataFrame中的列。默认情况下,列索引是从0开始的整数索引,可以通过df.columns属性访问。可以使用df[column]df.loc[:, column]来访问具有特定列名的列。

自定义索引:

可以通过传递一个索引列表来创建自定义的行索引或列索引。例如,df = pd.DataFrame(data, index=['a', 'b', 'c'])。自定义索引可以是唯一的或重复的。

多级索引:

多级索引是指在DataFrame中使用多个层次的行索引或列索引。可以使用pd.MultiIndex.from_arrays()pd.MultiIndex.from_tuples()pd.MultiIndex.from_product()等函数创建多级索引。可以使用df.indexdf.columns属性访问多级索引。

索引操作:

可以使用df.loc[row_indexer, column_indexer]来访问具有特定行索引和列索引的数据。可以使用切片操作来访问DataFrame中的多行或多列。例如,df.loc['a':'c', 'x':'z']表示访问行索引从’a’到’c’和列索引从’x’到’z’的数据。

重置索引:

可以使用df.reset_index()方法重置行索引,将原来的行索引转换为默认的整数索引。可以使用df.set_index(keys)方法设置新的行索引或列索引。通过灵活运用DataFrame的索引操作,可以方便地对数据进行访问、操作和分析。索引提供了一种标签化的方式来标识和定位数据,使得数据处理更加直观和高效

7.Dataframe基本技巧

在数据分析中,pandas的DataFrame是一个非常有用的数据结构。以下是一些常见的DataFrame基本技巧的详细解释:

访问DataFrame数据:

  • 可以使用列名来访问DataFrame中的列数据。例如,df['column_name']可以访问名为’column_name’的列。
  • 可以使用df.loc[row_indexer, column_indexer]来访问具有特定行索引和列索引的数据。
  • 可以使用df.iloc[row_indexer, column_indexer]来使用整数索引访问数据。

列操作:

  • 可以使用df['new_column'] = value来添加新的列,并为每个元素赋予相同的值。
  • 可以使用df.drop('column_name', axis=1)来删除指定的列。
  • 可以使用df.rename(columns={'old_name': 'new_name'})来重命名列。

行操作:

  • 可以使用df.loc[row_indexer]来访问具有特定行索引的行数据。
  • 可以使用df.iloc[row_indexer]来使用整数索引访问行数据。
  • 可以使用df.drop(row_indexer)来删除指定的行。

筛选数据:

  • 可以使用布尔索引来筛选DataFrame中的数据。例如,df[df[‘column’] > 0]会返回满足条件的行数据。
  • 可以使用df.isin(values)来筛选DataFrame中包含在给定值列表中的行数据。

缺失数据处理:

  • 可以使用df.isnull()df.notnull()方法来检测DataFrame中的缺失数据。
  • 可以使用df.dropna()方法来删除DataFrame中的缺失数据。
  • 可以使用df.fillna(value)方法来填充DataFrame中的缺失数据。

排序和排名:

  • 可以使用df.sort_values(by='column')方法对DataFrame进行排序。
  • 可以使用df.rank()方法对DataFrame中的元素进行排名。

统计分析:

  • 可以使用df.describe()方法获取DataFrame的统计摘要信息,如计数、均值、标准差、最小值、最大值等。
  • 可以使用df.sum()df.mean()df.median()df.std()等方法计算DataFrame的总和、平均值、中位数、标准差等。

这些基本技巧可以更好地使用pandas的DataFrame进行数据分析和处理。通过灵活运用这些技巧,可以轻松地操作和分析DataFrame中的数据。

8.时间模块

在数据分析中,pandas的时间模块提供了强大的时间序列处理功能。以下是pandas时间模块的一些常用功能和方法的详细解释:

时间戳(Timestamp):

时间戳表示某个具体的时间点,可以使用pd.Timestamp()函数创建时间戳对象。时间戳可以用于表示日期、时间或日期时间。

时间范围(DatetimeIndex):

时间范围是一种特殊的索引类型,用于表示一段连续的时间序列。可以使用pd.date_range()函数创建时间范围对象,指定起始日期、结束日期和频率。

时间序列数据(Series):

时间序列数据是指按照时间顺序排列的数据,可以使用时间戳或时间范围作为索引。可以使用pd.Series()函数创建时间序列对象,指定数据和索引。

时间戳索引(DatetimeIndex):

  • 时间戳索引是一种特殊的索引类型,用于按照时间顺序对数据进行索引和切片。
  • 可以使用pd.to_datetime()函数将字符串转换为时间戳索引。
  • 可以使用df.set_index()方法将时间戳索引设置为DataFrame的索引。

时间序列的重采样:

重采样是指将时间序列数据从一个频率转换为另一个频率的过程,如从日频率转换为月频率。可以使用resample()方法对时间序列进行重采样,指定目标频率和聚合函数。

时间序列的偏移:

时间序列的偏移是指将时间序列按照一定的时间间隔进行移动的操作。可以使用shift()方法对时间序列进行向前或向后的偏移。

时间序列的滚动窗口:

  • 滚动窗口是指在时间序列上按照固定大小的窗口进行滑动,并对窗口内的数据进行聚合操作。
  • 可以使用rolling()方法创建滚动窗口对象,然后使用聚合函数对窗口内的数据进行计算。
  • 通过灵活运用pandas的时间模块,可以方便地处理和分析时间序列数据,进行时间相关的计算和操作。时间模块提供了丰富的功能和方法,支持时间戳的创建、时间范围的生成、时间序列的重采样、偏移和滚动窗口等操作。

关注公众号:python技术训练营,学习快人一步

在这里插入图片描述

内容

1.面试专题几十个大厂面试题
2.入门基础教程
3.11模块零基础到精通笔记
4.百个项目实战+爬虫教程+代码
5.量化交易,机器学习,深度学习
6.Python游戏源码
7.交流学习
8.了解接单市场
9.DNF自动识别打怪
10.3263页学习资料

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

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

相关文章

04 todoList案例

React全家桶 一、案例- TODO List 综合案例 功能描述 动态显示初始列表添加一个 todo删除一个 todo反选一个 todotodo 的全部数量和完成数量全选/全不选 todo删除完成的 todo 1.1 静态组件构建 将资料包中的todos_page/index.html中核心代码添加到Todo.jsx文件中,…

高速电路设计系列分享-ADC电源的设计

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 提示:这里可以添加技术概要 如今,在设计人员面临众多电源选择的情况下,为高速ADC设计清洁电源时可能会面临巨大挑战。在利用高效开关电源而非传统LDO的场合,这尤其重要。…

liunx服务器使用selenium

文章目录 前言一、服务器下载google-chrome、chromedriver1、下载chrome2、下载chromedriver 二、安装Xvfb和python库pyvirtualdisplay、selenium1、安装Xvfb2、安装python库pyvirtualdisplay 三、配置好后测试总结 前言 最近在本地windows系统(下面简称本地&#…

在线搭建K8S,kubernetes集群v1.23.9,docker支持的最后一个版本

1. 部署环境主机(条件说明) master 192.168.186.128 CentOS Linux release 7.9.2009 (Core) node1 192.168.186.129 CentOS Linux release 7.9.2009 (Core) node2 192.168.186.130 CentOS Linux release 7.9.2009 (Core)2. 系统初始化-所有节点&am…

探索MediaPipe的人像分割

MediaPipe是Google开源的计算机视觉处理框架,基于TensorFlow来训练模型。图像分割模块提供人像分割、头发分割、多类分割。本文主要探索如何实现人像分割,当然在人像分割基础上,我们可以做背景替换、背景模糊。 目录 一、配置参数与模型 1…

负载均衡 Load Balancing

负载均衡 Load Balancing 数据链路层负载均衡网络层负载均衡应用层负载均衡均衡策略与实现轮询与随机随机权重与加权轮询一致性 hash最少活跃数(最少连接数) 对于电商平台而言,随着业务的不断发展壮大,网站访问量和数据量也随之急…

什么是堆栈?c语言实现栈上的pop和push操作

什么是堆栈?c语言实现栈上pop和push操作的算法 堆栈(stack)实现栈上pop和push操作解释 堆栈(stack) 堆栈(stack)是一种数据结构,它具有后进先出(Last-In-First-Out&…

抖音seo矩阵系统源码开发部署思路

抖音SEO矩阵系统源码开发和部署是一项复杂而又关键的任务。在开发阶段,我们需要根据抖音的搜索规则和算法,结合用户搜索意图和关键词,进行深入的研究和分析,以建立一个优秀的SEO矩阵系统。 在部署方面,我们需要遵循以…

完全零基础,如何学习渗透?

网络渗透这一行,做个脚本小子,使使工具啥的,个把月就学会了,这不难。 很多人把网络渗透简单的理解成就是搞网站,这是大错特错的! 不过这也难怪,Web安全那三招两式,最好教也最好学&…

还在找wma格式怎么转换mp3?

在一个遥远的国度里,有一位名叫小芳的歌手,她声音甜美动人,深受人们的喜爱。然而,她的音乐制作团队告诉她,她的歌曲只能以wma格式发布。但是,她的粉丝们大多数使用的是mp3格式的音乐播放器,这让…

【Java】JVM(五)

垃圾回收机制 判断对象的存活 在堆里面存放着几乎所有的对象实例,垃圾回收器在对对进行回收前,要做的事情就是确定这些对象中哪些还是“存活”着,哪些已经“死去”(死去代表着不可能再被任何途径使用得对象了) 可达…

【pytest学习总结2.3】 - 如何使用固定装置fixtures(2)

目录 2.3.8 使用mark给固定装置传递数据 2.3.9 将固定装置工厂化 2.3.10 参数化固定装置 2.3.11 使用带有参数化固定装置的标记 2.3.12 使用来自固定装置功能中的固定装置 - 模块化 2.3.13 按固定装置实例自动分组测试 2.3.14 在类和模块中使用usefixtures 2.3.15 固定…

四.安防摄像机的WDR(HDR) 性能

四.安防摄像机的WDR(HDR) 性能 4.0 概述 WDR就是宽动态,wide dynamic range,或者HDR,high dynamic range,本质上是一回事,没任何区别。那么,到底什么是宽呢?很简单,搞不定的,就是太宽了,比如 摄像机装在室内,室内正常照度500lux,玻璃门外就是10000lux,室内外…

单机取证-鉴于信息安全管理与评估赛项-计算机单机取证特别说明-例题详解-Autopsy使用

芜湖~ 本期针对全国职业技能大赛-信息安全管理与评估赛项分析一下单机取证这个大项 并且取一例题 进行例题讲解 分享一些思路和逻辑 目录 题目 前言分析 .E01 ⽂件 DD 镜像和 E01 镜像的主要区别 如何打开和查看 E01 ⽂件扩展名? 常用工具使用-Autopsy 正…

现在这个年代,还有必要进行JVM调优吗?

导言 随着技术的不断发展,软件开发行业也在日新月异地进步。在过去的几十年里,Java语言和Java虚拟机(JVM)在开发企业级应用方面扮演了重要角色。然而,随着硬件和软件的进步,以及JVM本身的改进,…

Linux驱动学习(4) MTD字符驱动和块驱动1

系列文章目录 Linux驱动学习(4) 文章目录 目录 目录 系列文章目录 文章目录 前言 一、MTD是什么? 二、MTD子系统架构 1.Linux文件存储基本架构: ​ 2.MTD子系统基本架构: 总结 前言 MTD设备在嵌入式设备中…

2023网安面试题164道(附答案)

最近有不少小伙伴跑来咨询: 想找网络安全工作,应该要怎么进行技术面试准备?工作不到 2 年,想跳槽看下机会,有没有相关的面试题呢? 为了更好地帮助大家高薪就业,今天就给大家分享两份网络安全工…

【pytest学习总结2.2 】- 如何在测试中编写断言?

目录 2.2 如何在测试中编写断言 2.2.1 assert 断言 2.2.2 断言预期的异常 2.2.3 断言预期警告 【后续内容更新】 2.2.4 断言上下文 2.2.5 为失败的断言定义您自己的解释 2.2.6 断言的详细内容 🎁更多干货 完整版文档下载方式: 2.2 如何在测试中…

C++ 哈希思想 unordered_set unordered_map

文章目录 哈希思想常用的哈希函数哈希冲突解决方案哈希代码实现(C 源码)unordered_set & unordered_map 容器**unordered_set & unordered_map模拟实现**(C 源码) 哈希思想 抽象感受哈希的优点 如果我现在抛出一个问题&a…

Python+OpenCV 实现图像位平面分层进行图像信息隐藏

引言 闲言:这篇博客回归了传统图像处理领域,主要是在研究生的数字图像处理课程上接触到了新的知识–图像位平面,觉得还挺有意思的,可以用来做信息隐藏,索性记录一下。因为拖延的缘故,到学期末才赶出来一篇&…