数据分析-24-母婴产品电商可视化分析(包含代码数据)

news2025/5/26 0:41:23

文章目录

    • 0. 代码数据获取
    • 1. 项目
      • 1.1 项目介绍
      • 1.2 分析目的
      • 1.3 分析思路
    • 2. 数据集介绍
      • 2.1 数据信息
      • 2.2 字段含义
    • 3. 数据清洗
      • 3.1 导入包和查看数据
      • 3.2 查看列的信息
      • 3.3 查看表平均值这些
      • 3.4 查出重复的user_id
      • 3.5 清洗buy_mount列
    • 4. 针对目的进行分析
      • 4.1 销量数量前10的类别ID
      • 4.2 订单量前10的类别ID
      • 2.4 根类别的订单量
      • 4.5 年的销量数量
      • 4.6 年的订单量
      • 4.7 月的销售数量
      • 4.8 月的订单数
      • 4.9 每年各跟类别的销售数量占比
      • 4.10 每年各跟类别的订单量占比
      • 4.11 用户性别分布情况
        • a. 读取tianchi_mum_baby.csv表,并清洗数据
        • b. 查看列的信息
        • c. 查看有没有重复的user_id
        • d. 查看未知性别的有多少
        • e. 将量表内连接作为样本来分析
        • f. 查看user_id重复的数据
        • g. 将0转换成女性,1转换成男性:
      • 4.12 各性别的销售数量
      • 4.13 各性别的订单量
      • 4.14 各性别销售数量中的跟类别占比
      • 4.15 各性别订单量中的跟类别占比
      • 4.16 各年龄层人数分布
        • a. 增加age辅助列
        • b. 增加age_type辅助列
        • c. 各年龄层人数分布
      • 4.17 各年龄层销售数量情况
    • 5. 总结

0. 代码数据获取

关注公众号:『AI学习星球
回复:母婴产品电商 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述


1. 项目

1.1 项目介绍

今年来母婴的消费逐渐增加,这是一份关于淘宝天猫的一份母婴的销售数据。分析该数据集有利于了解目前市场的销售情况,便于做出运营决策,提高销售额。

1.2 分析目的

  • 帮助在线商家针对不同的时间节点和场景做出不同的销售和运营管理策略,帮助商家提高销量和营业额、减少经营成本。
  • 根据baby一表中的birthday字段判断出客户宝宝的年龄,或者根据孩子的信息(年龄、性别等)及对应的商品销量来推断用户喜好进行精准营销。

1.3 分析思路

此数据集中能得到的指标主要有:营运指标—>成交指标—>成交数量和成交用户数,会员指标—>会员复购率平均购买次数

此分析中根据场景对成交数量表述为销量或购买的数量等,对成交用户数表述成购买用户数或用户数等。此分析主要结合销量和购买用户数一起分析购买情况。

本次分析主要想探索下列问题:

  1. 想知道购买情况的整体趋势如何,是否有“季节成分”,即一年内或持续时间小于一年的有规则的、重复的运动,分别按星期,按月和按季度来分析季节成分;
  2. 每个大类的购买情况如何,哪些小类是热门,哪些小类又是冷门;
  3. 用户购买的商品种类和婴儿信息有什么关系,具体热销商品对应的用户画像;
  4. 复购情况如何,分析复购的用户和商品种类。

在这里插入图片描述

2. 数据集介绍

2.1 数据信息

数据来自淘宝和天猫上购买婴儿用品信息,本数据集包括两个文件:

  • tianchi_mum_baby_trade_history.csv - 交易记录表
  • tianchi_mum_baby.csv - 婴儿信息表

真实数据集的数据量非常大,仅婴儿信息就有900多万,天池数据集只给出了一些样本数据。

表:包含29972行,7列。

2.2 字段含义

tianchi_mum_baby_trade_history.csv,一共29972行,7列

字段名字字段含义
user_id用户id
auction_id购买行为编号
cat1商品所属的大类
cat_id商品种类id,cat_id是cat1的子类,是更细分的类别
property商品属性
buy_mount购买数量
day购买时间

tianchi_mum_baby.csv,一共954行,3列。

字段名字字段含义
user_id用户id
birthday出生日期
gender性别(0 女孩,1 男孩,2性别不明)

3. 数据清洗

3.1 导入包和查看数据

import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'
%matplotlib inline
df = pd.read_csv('tianchi_mum_baby_trade_history.csv', engine='python', parse_dates=['day'])
df.shape

(29971, 7)

3.2 查看列的信息

df.info()                 

在这里插入图片描述

  • 这里只有property这列的数据有异常,只有29827条数据,其他的数据都没异常,

  • property这列的数据不做处理,这列的数据较分散,难以分析

3.3 查看表平均值这些

df.describe()

在这里插入图片描述

  • 查看数据的计数、平均值、标准差、最小值、最大值、1/4分位数,2/4分位数、3/4分位数
  • 这里的buy_mount最大值为1000,是异常数据

3.4 查出重复的user_id

df[df.duplicated('user_id')].shape

(27, 7)

  • 查找出重复的数据,并查看数据的详细信息,再决定进一步要怎么清洗数据,
  • 数据匹配的上,有27条重复的数据

这里有27条重复的数据,进一步查看这些数据:

df[df.duplicated('user_id')].user_id

在这里插入图片描述

  • 查看重复数据的ID,进一步将全部的重复数据找出来,对比下,重复数据是由于复购或者数据异常这样

进一步查看user_id重复的原始数据:

df[df.user_id.isin(df[df.duplicated('user_id')].user_id)].sort_values(by='user_id', ascending=True)

在这里插入图片描述

  • 查找所有的重复数据,并按user_id排序
  • 52条数据52-27
  • 25个人重复购买
  • 观察每个用户的下单日期day,可以看出这些用户,是重复购买的用户,数据没有异常

3.5 清洗buy_mount列

df.drop(index=df[df.buy_mount>101].index, inplace=True)
  • 这里最大值是10000,有异常值,标准差是63.98,均值是2.54
  • 这里直接将购买数量大于101的数据当做异常值,这些数据有41条,占了0.1%

关注公众号:『AI学习星球
回复:母婴产品电商 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述


4. 针对目的进行分析

4.1 销量数量前10的类别ID

sale_num_top = df.groupby("cat_id").sum()['buy_mount'].sort_values(ascending=False).head(10).reset_index()
# 这里将cat_id转换成str类型,并在前面+个_是为了画图的时候,x轴不是按cat_id大小来排序的,
# 这会导致画的数据标签错位的。
sale_num_top['cat_id'] = sale_num_top['cat_id'].apply(lambda x:'_' + str(x))
# 可视化
import seaborn as sns
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='cat_id', y='buy_mount', data=sale_num_top)
plt.xticks(rotation=70)
for a, b in enumerate(sale_num_top.buy_mount):
    plt.text(a, b, b, va='center', ha='center', rotation=45)

在这里插入图片描述

4.2 订单量前10的类别ID

order_num_top = df.groupby('cat_id').count()[
    'user_id'].reset_index().rename(columns={'user_id': 
                                             'order_num'}).sort_values(
    by='order_num', ascending=False).head(10)
order_num_top['cat_id'] = order_num_top['cat_id'].apply(lambda x:'_' + str(x))
#可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='cat_id', y='order_num', data=order_num_top)
plt.xticks(rotation=70)
for a, b in enumerate(order_num_top.order_num):
    plt.text(a, b, b, va='center', ha='center', rotation=45)

在这里插入图片描述

cat1_sale_num = df.groupby('cat1').sum()['buy_mount'].reset_index()
cat1_sale_num['cat1'] = cat1_sale_num['cat1'].apply(lambda x:'_' + str(x))
#可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='buy_mount', y='cat1', data=cat1_sale_num)
plt.xticks(rotation=70)
for a, b in enumerate(cat1_sale_num.buy_mount):
    plt.text(b, a, b, va='center', ha='center')

在这里插入图片描述

2.4 根类别的订单量

cat1_order_num = df.groupby('cat1').count()['user_id'].reset_index().rename(
columns={'user_id': 'order_num'}).sort_values(by='order_num', ascending=False)
cat1_order_num['cat1'] = cat1_order_num['cat1'].apply(lambda x:'_' + str(x))
#可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='order_num', y='cat1', data=cat1_order_num)
plt.xticks(rotation=70)
for a, b in enumerate(cat1_order_num.order_num):
    plt.text(b, a, b, va='center', ha='center')

在这里插入图片描述

4.5 年的销量数量

# 增加年这个辅助列
df['year'] = df['day'].dt.year
# 随机抽取10条数据看下辅助列是否正确添加
df.sample(10)

在这里插入图片描述
成功增加辅助列 - 年

year_sale_num = df.groupby('year').sum()['buy_mount'].reset_index()
#可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='year', y='buy_mount', data=year_sale_num)
plt.xticks(rotation=70)
for a, b in enumerate(year_sale_num.buy_mount):
    plt.text(a, b, b, va='center', ha='center', rotation=45)

在这里插入图片描述


关注公众号:『AI学习星球
回复:母婴产品电商 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述


4.6 年的订单量

year_order_num = df.groupby('year').count()['buy_mount'].reset_index()
# 可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='year', y='buy_mount', data=year_order_num)
plt.xticks(rotation=70)
for a, b in enumerate(year_order_num.buy_mount):
    plt.text(a, b, b, va='center', ha='center', rotation=45)

在这里插入图片描述

4.7 月的销售数量

增加付出列 - 月

df['month'] = df['day'].dt.month
df.sample(10)

在这里插入图片描述
成功添加辅助列 - 月

month_sale_num = df.groupby(['year', 'month']).sum()[
    'buy_mount'].reset_index()
# 可视化
plt.figure(figsize=(6,4), dpi=128)
palette = sns.color_palette("mako_r", 4)
sns.lineplot(x='month', y='buy_mount', hue='year', data=month_sale_num, palette=palette)

在这里插入图片描述

4.8 月的订单数

month_order_num = df.groupby(['year', 'month']).count()[
    'user_id'].reset_index().rename(columns={'user_id': 'order_num'})
#可视化
plt.figure(figsize=(6,4), dpi=128)
palette = sns.color_palette("mako_r", 4)
sns.lineplot(x='month', y='order_num', hue='year', data=month_order_num, palette=palette)

在这里插入图片描述

4.9 每年各跟类别的销售数量占比

year_cat1_sale_num = df.groupby(['year', 'cat1']).sum()['buy_mount'].reset_index()
#窗口函数,按年求年销售数量的总和
year_cat1_sale_num['sum'] = year_cat1_sale_num.groupby('year')['buy_mount'].transform('sum')
year_cat1_sale_num['rate'] = round((year_cat1_sale_num['buy_mount'] / year_cat1_sale_num['sum']) * 100,2)
# 传入绘图Y轴的参数
y1 = year_cat1_sale_num[year_cat1_sale_num.cat1==28].rate
y2 = year_cat1_sale_num[year_cat1_sale_num.cat1==38].rate
y3 = year_cat1_sale_num[year_cat1_sale_num.cat1==50008168].rate
y4 = year_cat1_sale_num[year_cat1_sale_num.cat1==50014815].rate
y5 = year_cat1_sale_num[year_cat1_sale_num.cat1==50022520].rate
y6 = year_cat1_sale_num[year_cat1_sale_num.cat1==122650008].rate

# 柱状堆叠图
import pyecharts.options as opts
from pyecharts.charts import Bar

years = ['2012', '2013', '2014', '2015']
bar = (
    Bar()
    .add_xaxis(years)
    .add_yaxis('28', list(y1), stack='stack1')
    .add_yaxis('38', list(y2), stack='stack1')
    .add_yaxis('50008168', list(y3), stack='stack1')
    .add_yaxis('50014815', list(y4), stack='stack1')
    .add_yaxis('50022520', list(y5), stack='stack1')
    .add_yaxis('122650008', list(y6), stack='stack1')
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, 
                                               position='center',
                                              color='black',
                                              font_size=18,
                                              formatter="{c} %"))
    .set_global_opts(title_opts=opts.TitleOpts(title='每年各跟类别的销售数量占比'),
                     xaxis_opts=opts.AxisOpts(name='年份'),       
                     yaxis_opts=opts.AxisOpts(name='各跟类别的销售数量占比'))
)


# bar.render('柱状堆叠图4.html')  
bar.render_notebook()

在这里插入图片描述

4.10 每年各跟类别的订单量占比

year_cat1_order_num = df.groupby(['year', 'cat1']).count()[
    'user_id'].reset_index().rename(columns={'user_id': 'order_num'})

#窗口函数,按年求年订单量的总和
year_cat1_order_num['sum'] = year_cat1_order_num.groupby(
    'year')['order_num'].transform('sum') 
#将其转换成十位数,并保留两位小数
year_cat1_order_num['rate'] = round((year_cat1_order_num[
    'order_num'] / year_cat1_order_num['sum'])*100, 2) 

#柱状图的y值
y1 = year_cat1_order_num[year_cat1_order_num.cat1==28].rate
y2 = year_cat1_order_num[year_cat1_order_num.cat1==38].rate
y3 = year_cat1_order_num[year_cat1_order_num.cat1==50008168].rate
y4 = year_cat1_order_num[year_cat1_order_num.cat1==50014815].rate
y5 = year_cat1_order_num[year_cat1_order_num.cat1==50022520].rate
y6 = year_cat1_order_num[year_cat1_order_num.cat1==122650008].rate  

#可视化
years = ['2012', '2013', '2014', '2015']
bar = (
    Bar()
    .add_xaxis(years)
    .add_yaxis('28', list(y1), stack='stack1')
    .add_yaxis('38', list(y2), stack='stack1')
    .add_yaxis('50008168', list(y3), stack='stack1')
    .add_yaxis('50014815', list(y4), stack='stack1')
    .add_yaxis('50022520', list(y5), stack='stack1')
    .add_yaxis('122650008', list(y6), stack='stack1')
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, 
                                               position='center',
                                              color='black',
                                              font_size=18,
                                              formatter="{c} %"))
    .set_global_opts(title_opts=opts.TitleOpts(title='每年各跟类别的订单量占比'),
                     xaxis_opts=opts.AxisOpts(name='年份'),       
                     yaxis_opts=opts.AxisOpts(name='各跟类别的订单量占比'))
)


# bar.render('订单量1.html')
bar.render_notebook()

在这里插入图片描述

4.11 用户性别分布情况

a. 读取tianchi_mum_baby.csv表,并清洗数据
baby_df = pd.read_csv('tianchi_mum_baby.csv', engine='python', parse_dates=['birthday'])
baby_df.shape                     

(953, 3)

b. 查看列的信息
baby_df.info()

在这里插入图片描述

没有缺失值

c. 查看有没有重复的user_id
baby_df.user_id.unique().size

953

d. 查看未知性别的有多少

性别变量的三个值:0女性,1男性,2未知

baby_df[baby_df.gender==2].shape

(26, 3)

性别未知的有26人,占了总数的2.7%,直接删除处理

baby_df.drop(index=baby_df[baby_df.gender==2].index, inplace=True)
e. 将量表内连接作为样本来分析
sample_df = pd.merge(df, baby_df, on='user_id', how='inner')
sample_df.shape

(929, 11)

f. 查看user_id重复的数据
sample_df[sample_df.duplicated('user_id')]

在这里插入图片描述
进一步查看所有重复数据

sample_df[sample_df.user_id.isin(['116466705', '213455117', '69889555'])]

可以看出这些是重复购买的数据,没有异常。

g. 将0转换成女性,1转换成男性:
def parse_gender(x):
    if x== 0:
        return "女"
    else:
        return "男"
sample_df['gender'] = sample_df['gender'].apply(parse_gender)
sample_df

在这里插入图片描述
用户性别分布情况

plt.figure(figsize=(6, 4), dpi=128)
sample_df.groupby('gender').count()['user_id'].plot(kind='pie', autopct='%.2f%%')

在这里插入图片描述


关注公众号:『AI学习星球
回复:母婴产品电商 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述


4.12 各性别的销售数量

gender_sale_num = sample_df.groupby('gender').sum()['buy_mount'].reset_index()
# 可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='gender', y='buy_mount', data=gender_sale_num)
plt.xticks(rotation=70)
for a, b in enumerate(gender_sale_num.buy_mount):
    plt.text(a, b, b, va='center', ha='center', rotation=45)

在这里插入图片描述

4.13 各性别的订单量

gender_order_num = sample_df.groupby('gender').count()[
    'user_id'].reset_index().rename(columns={'user_id': 'order_num'})
#可视化
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='gender', y='order_num', data=gender_order_num)
plt.xticks(rotation=70)
for a, b in enumerate(gender_order_num.order_num):
    plt.text(a, b, b, va='center', ha='center', rotation=45)    

在这里插入图片描述

4.14 各性别销售数量中的跟类别占比

gender_cat1_sale_num = sample_df.groupby(['gender', 'cat1']).sum()[
    'buy_mount'].reset_index()

gender_cat1_sale_num['sum'] = gender_cat1_sale_num.groupby(
    'gender')['buy_mount'].transform('sum') 

gender_cat1_sale_num['rate'] = round((gender_cat1_sale_num['buy_mount'] / 
                                     gender_cat1_sale_num['sum'])*100, 2) 
y1 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==28].rate
y2 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==38].rate
y3 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==50008168].rate
y4 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==50014815].rate
y5 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==50022520].rate
y6 = gender_cat1_sale_num[gender_cat1_sale_num.cat1==122650008].rate

years = ['女', '男']
bar = (
    Bar()
    .add_xaxis(years)
    .add_yaxis('28', list(y1), stack='stack1')
    .add_yaxis('38', list(y2), stack='stack1')
    .add_yaxis('50008168', list(y3), stack='stack1')
    .add_yaxis('50014815', list(y4), stack='stack1')
    .add_yaxis('50022520', list(y5), stack='stack1')
    .add_yaxis('122650008', list(y6), stack='stack1')
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, 
                                               position='center',
                                              color='black',
                                              font_size=18,
                                              formatter="{c} %"))
    .set_global_opts(title_opts=opts.TitleOpts(title='各性别销售数量中的跟类别占比'),
                     xaxis_opts=opts.AxisOpts(name='年份'),       
                     yaxis_opts=opts.AxisOpts(name='各跟类别的销售数量占比'))
)


# bar.render('各性别销售数量中的跟类别占比1.html')  
bar.render_notebook()

在这里插入图片描述

4.15 各性别订单量中的跟类别占比

gender_cat1_order_num = sample_df.groupby(['gender', 'cat1']).count()[
    'user_id'].reset_index().rename(columns={'user_id': 'order_num'})

gender_cat1_order_num['sum'] = gender_cat1_order_num.groupby(
    'gender')['order_num'].transform('sum')

gender_cat1_order_num['rate'] = round((gender_cat1_order_num['order_num'] / 
                                     gender_cat1_order_num['sum'])*100, 2)

y1 = gender_cat1_order_num[gender_cat1_order_num.cat1==28].rate
y2 = gender_cat1_order_num[gender_cat1_order_num.cat1==38].rate
y3 = gender_cat1_order_num[gender_cat1_order_num.cat1==50008168].rate
y4 = gender_cat1_order_num[gender_cat1_order_num.cat1==50014815].rate
y5 = gender_cat1_order_num[gender_cat1_order_num.cat1==50022520].rate
y6 = gender_cat1_order_num[gender_cat1_order_num.cat1==122650008].rate


years = ['女', '男']
bar = (
    Bar()
    .add_xaxis(years)
    .add_yaxis('28', list(y1), stack='stack1')
    .add_yaxis('38', list(y2), stack='stack1')
    .add_yaxis('50008168', list(y3), stack='stack1')
    .add_yaxis('50014815', list(y4), stack='stack1')
    .add_yaxis('50022520', list(y5), stack='stack1')
    .add_yaxis('122650008', list(y6), stack='stack1')
    .set_series_opts(label_opts=opts.LabelOpts(is_show=True, 
                                               position='center',
                                              color='black',
                                              font_size=18,
                                              formatter="{c} %"))
    .set_global_opts(title_opts=opts.TitleOpts(title='各性别订单量中的跟类别占比'),
                     xaxis_opts=opts.AxisOpts(name='年份'),       
                     yaxis_opts=opts.AxisOpts(name='各跟类别的订单量占比'))
)


# bar.render('各性别订单量中的跟类别占比1.html')
bar.render_notebook()

在这里插入图片描述

4.16 各年龄层人数分布

a. 增加age辅助列
sample_df['age'] = sample_df['birthday'].apply(lambda x: 2020 - int(x.year))
sample_df.sample(5)   

在这里插入图片描述

b. 增加age_type辅助列
def parse_age_to(age):
    if age <3:
        return "3岁以下"
    elif age<6:
        return "3-5岁"
    elif age<9:
        return "6-8岁"
    elif age<12:
        return "9-11岁"
    elif age<15:
        return "12-14岁"
    else:
        return "15岁以上"
sample_df['age_type'] = sample_df['age'].apply(parse_age_to)
sample_df.sample(5)        

在这里插入图片描述

c. 各年龄层人数分布
age_type_user_num = sample_df.groupby('age_type').count()['user_id'].reset_index().rename(columns={'user_id': 'order_num'})
sns.scatterplot(x='age_type', y='order_num', size='order_num', data=age_type_user_num)

在这里插入图片描述

4.17 各年龄层销售数量情况

age_type_sale_num = sample_df.groupby('age_type').sum()[
    'buy_mount'].reset_index()
#可视化   
plt.figure(figsize=(6,4), dpi=128)
sns.barplot(x='age_type', y='buy_mount', data=age_type_sale_num)
plt.xticks(rotation=70)
for a, b in enumerate(age_type_sale_num.buy_mount):
    plt.text(a, b, b, va='center', ha='center', rotation=45)    

在这里插入图片描述

5. 总结

  1. 总体销售情况:
    • 总体销售量逐年增长但每月销售量的波动大。
    • 受到春节的影响,每年年1、2月份的销量下降。
    • 受到双11、双12的影响促销活动日期都有一定的涨幅。
  2. 用户画像
    • 消费者中女孩与男孩的人数占比接近,女孩稍多于男孩。
    • 消费者的年龄主要集中在0-3岁,0-3岁购买的商品总量也最大。
    • 性别中含有未知这一项,消费者可能是准妈妈/准爸爸,占比较少。
  3. 商品销售情况
    • 大多数的用户订单购买量是一件,且复购率极低。
    • 大类50014815、50008168和28的销量最高
    • 大类38虽然子类数量少销量少但是人均用户购买量却很大,复购率也最高,可以考虑在该大类下新增子类,增加用户选择,提高销量。

关注公众号:『AI学习星球
回复:母婴产品电商 即可获取数据下载。
算法学习4对1辅导论文辅导核心期刊可以通过公众号或➕v:codebiubiubiu滴滴我
在这里插入图片描述

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

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

相关文章

T40N 君正智能处理器T40 BGA 芯片

T40N是一款智能视频应用处理器&#xff0c;适用于移动摄像机、安防等视频设备调查、视频聊天、视频分析等。该SoC引入了一种创新的体系结构满足高性能计算和高质量图像和视频编码的要求通过视频设备解决。T40N提供高速CPU计算能力&#xff0c;出色的图像信号过程中&#xff0c;…

ensp vlan连接(详细)

1.将需要的设备放置好 2.将设备连接起来 3.启动所有设备 4.备注好每台PC机的信息 5.配置好每台PC机 6.配置交换机1 进入配置视图&#xff0c;关闭信息提示 重命名设备 批量创建VLAN 开始配置接口 更改接口类型为ACCESS 将接口划分到对应的VLANN 配置下一个接口&#xff0c;步…

JavaScript高级程序设计读书记录(一):语言基础,语法,变量,数据类型

1. 语法 很大程度上借鉴了 C 语言和其他类 C 语言&#xff0c;如 Java 和 Perl. 1.1 区分大小写 1.2 标识符 第一个字符必须是一个字母、下划线&#xff08;_&#xff09;或美元符号&#xff08;$&#xff09;&#xff1b; 剩下的其他字符可以是字母、下划线、美元符号或数…

qiankun 公共依赖

1、提取公共依赖的目的 减少相同资源的重复加载资源版本不同步打包文件庞大2、如何提取公共依赖 基本思路&#xff1a;1、相同依赖 采用 CDN 的方式加载&#xff0c;并把 所有依赖的 CDN 链接 统一放到一个文件中进行管理 2、把存放 CDN 链接的文件&#xff0c;引入到 vue.conf…

NFT 项目入驻 NFTScan Site 流程说明

NFTScan Site 是由数据基础设施 NFTScan 推出的功能强大的 NFT 项目管理平台。NFTScan Site 主要为 NFT Collection、NFT Marketplace、NFTFi 以及其他 NFT 生态项目提供专业的项目管理后台服务和链上数据分析追踪服务。 NFTScan Site 功能&#xff1a; 1&#xff09;项目信息编…

华硕ASUS RT-AC1200 pandavan老毛子 128M DDR固件

原版硬件只支持64M DDR2&#xff0c;更换了128M内存&#xff0c;结果找不到对应的固件&#xff0c;而且全部都是英文版的 所以自己编译了中文版的pandavan老毛子&#xff0c;下载位置可能资源审核中&#xff1a;

基于Kettle开发的web版数据集成开源工具(data-integration)-部署篇

目录 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 下载编译&#x1f4d7;下载&#x1f4d7;编译 &#x1f4da;第三章 部署&#x1f4d7;准备工作&#x1f4d5; 安装数据库&redis&consul&#x1f4d5; 修改…

树莓派控制继电器(IO的配置和使用)

一、硬件函数初始化 int wiringPiSetup(void)返回&#xff1a;执行状态&#xff0c;-1表示失败 当使用这个函数初始化树莓派引脚时&#xff0c;程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16 需要root权限 二、配置IO口的模式 void pinMode (int pin, int …

算法31:针对算法30货币问题进行拓展 + 时间复杂度 + 空间复杂度优化--------从左往右尝试模型

在算法30中&#xff0c;我们说过从左往右尝试模型&#xff0c;口诀就是针对固定集合&#xff0c;就是讨论要和不要的累加和。 那么对于非固定集合&#xff0c;我们应该怎么做呢&#xff1f; 针对非固定集合&#xff0c;面值固定&#xff0c;张数不固定。口诀就是讨论要与不要…

URLConnection()和openStream()两个方法产生SSRF的原理和修复方法

今年是自主研发的第三个年份&#xff0c;也是重视安全的年份。 转一篇小文章&#xff1a; 0x00 前言 SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定 URL 地址获取网页文本内容&#xff0c;加载指定地址的图…

《算法导论》复习——CHP1、CHP2 算法基础

基本定义&#xff1a; 算法是一组有穷的规则&#xff0c;规定了解决某一特定类型问题的一系列运算。 关心算法的正确性和效率。 算法的五个重要特性&#xff1a;确定性、能行性、输入、输出、有穷性。 基础方法&#xff1a; 伪代码&#xff08;Pseudocode&#xff09;&#xff…

C# .Net学习笔记—— 异步和多线程(Task)

一、概念 Task是DotNet3.0之后所推出的一种新的使用多线程的方式&#xff0c;它是基于ThreadPool线程进行封装的。 二、使用多线程的时机 任务能够并发运行的时候&#xff0c;提升速度&#xff1b;优化体验 三、基本使用方法 private void button5_Click(object sender, Ev…

Spark内核解析-数据存储5(六)

1、Spark的数据存储 Spark计算速度远胜于Hadoop的原因之一就在于中间结果是缓存在内存而不是直接写入到disk&#xff0c;本文尝试分析Spark中存储子系统的构成&#xff0c;并以数据写入和数据读取为例&#xff0c;讲述清楚存储子系统中各部件的交互关系。 1.1存储子系统概览 …

RT-Thread 14. GD32F330RBT6 Keil4移植RT-Thread

1.增加rt-thread-v4.1.0源码 rt-thread-v4.1.0\bsp\gd32350r-eval复制重命名为gd32f330_v1 2.文件组织结构 Usr&#xff1a;存放App任务应用&#xff0c;属于应用层&#xff0c;完全脱离硬件 CMSIS&#xff1a;硬件层&#xff0c;启动文件、系统文件 Driver&#xff1a;硬件外…

Spring实现IoC:依赖注入/构造注入

● 控制反转&#xff0c;反转的是什么&#xff1f; ○ 将对象的创建权利交出去&#xff0c;交给第三方容器负责。 ○ 将对象和对象之间关系的维护权交出去&#xff0c;交给第三方容器负责。 ● 控制反转这种思想如何实现呢&#xff1f; ○ DI&#xff08;Dependency Injection&…

通过IP地址如何进行网络安全防护

IP地址在网络安全防护中起着至关重要的作用&#xff0c;可以用于监控、过滤和控制网络流量&#xff0c;识别潜在威胁并加强网络安全。以下是通过IP地址进行网络安全防护的一些建议&#xff1a; 1. 建立IP地址白名单和黑名单&#xff1a; 白名单&#xff1a;确保只有授权的IP地…

UMLChina书籍大全(2024)软件方法人月神话人件企业应用架构模式UML参考手册彩色UML建模领域驱动设计对象设计……

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 以下列出有UMLChina标记的书。 首先是写了十几年还没有写完的软件方法 其他的是译作&#xff1a; 人月神话 2002年&#xff0c;UMLChina和清华大学出版社合作&#xff0c;翻译了《人…

老生常谈:Web 与低代码开发

Web技术和低代码平台是当前技术领域中的两个热门话题。它们在应用开发领域中扮演着重要的角色&#xff0c;不断被提及和讨论。本文将讨论为什么“Web与低代码”这个话题成为了“老生常谈”&#xff0c;探讨其背后的原因以及这两个概念的关系。 在当今技术飞速发展的时代&#x…

imgaug库指南(二):从入门到精通的【图像增强】之旅

文章目录 引言前期回顾代码示例小结结尾 引言 在深度学习和计算机视觉的世界里&#xff0c;数据是模型训练的基石&#xff0c;其质量与数量直接影响着模型的性能。然而&#xff0c;获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此&#xff0c;数据增强技术应…

静态S5在项目管理中的应用与案例分享

静态S5作为一种强大的数据分析工具&#xff0c;不仅在数据处理和可视化方面表现出色&#xff0c;还在项目管理中发挥着重要作用。本篇将通过实际案例分享&#xff0c;探讨静态S5在项目管理中的应用与优势。 一、静态S5在项目管理中的应用 项目进度管理&#xff1a;静态S5通过…