【Python】numpy数组常用数据处理(测试代码+api例程)

目录

  • 一、数列生成
    • 1.按照间隔生成数列(np.array[])
    • 2.按照数列数字个数生成数列(np.linspace)
  • 二、数列增删改查
    • 1.1 数组末尾添加数据(np.append)
    • 1.2 数组指定索引位置添加数据(np.insert)
    • 2.数列删除元素(np.delete)
    • 3. 数列修改元素(通过索引和切片得到的变量直接赋值修改 )
    • **4. 数列查询元素**
        • **4.1 基础索引与切片**
        • **4.2 条件查询(布尔索引)**
        • **4.3 位置索引查询**
        • **4.4 高级索引技巧**
        • **4.5 嵌套结构与对象查询
      • **4.6 性能优化建议**
      • **完整代码示例**
      • **关键总结**
  • 数据清洗 NumPy数组操作与数据清洗指南:数据去重详解
    • 一、数据去重函数:numpy.unique()
      • 函数原型与参数说明
      • 基本用法示例
      • 高级参数应用
        • 1. 获取元素首次出现位置(`return_index`)
        • 2. 重构原始数组(`return_inverse`)
        • 3. 统计元素出现次数(`return_counts`)
      • 多维数组按轴去重
    • 二、其他去重方法对比
      • 1. 集合(Set)去重
      • 2. 有序字典(OrderedDict)去重
      • 3. Pandas去重
    • 三、性能对比与选择建议
    • 四、实用技巧与注意事项
    • 五、综合应用示例
    • 总结


欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中

一、数列生成

1.按照间隔生成数列(np.array[])

(行内for循环快速生成),注意区间左闭右开 range(开始,结束,间隔)

print("1.按照间隔生成数列(行内for循环快速生成),注意区间左闭右开  range(开始,结束,间隔)")
a=np.array([x for x in range(1,11)])
print(a)

2.按照数列数字个数生成数列(np.linspace)

注意区间左闭右闭 numpy.linspace(开始,结束,个数(默认50))

print("2.按照数列数字个数生成数列,注意区间左闭右闭  numpy.linspace(开始,结束,个数(默认50))")
b=np.linspace(1,50)
print(b)
b2=np.linspace(0,10,2)#总个数为11
print(b2)

二、数列增删改查

1.1 数组末尾添加数据(np.append)

numpy.append(arr, values, axis=None)

  • arr:输入数组
  • values:要向arr添加的值,需要和arr形状相同(除了要添加的轴)
  • axis:默认为 None。当axis无定义时,是横向加成,返回总是为一维数组!当axis有定义的时候,分别为0和1的时候。当axis有定义的时候,分别为0和1的时候(列数要相同)。当axis为1时,数组是加在右边(行数要相同)。
  • 注意,与列表的append不同,需要用a= 来接收返回的新增元素的np数组。在数组的末尾添加值,append 函数返回的始终是一个一维数组
  • 单维度
print("1.数列增加元素append")
a=np.array([])#一个空数列
print(a)#[]
a=np.append(a,1)#注意,与列表的append不同,需要用a= 来接收返回的新增元素的np数组
# 在数组的末尾添加值,append 函数返回的始终是一个一维数组
print(a)#[1.]
  • 多维度示例
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a)
print(np.append(a, [[11, 12, 13]], axis=0))
#沿轴 0 添加元素:
#[[1 2 3]
# [4 5 6]
# [11 12 13]]

1.2 数组指定索引位置添加数据(np.insert)

numpy.insert(ary, indices_or_sections, axis)

  • ary:被分割的数组
  • indices_or_sections:如果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)
  • axis:设置沿着哪个方向进行切分,默认为 0,横向切分,即水平方向。为 1 时,纵向切分,即竖直方向。
  • 函数在给定索引之前,沿给定轴在输入数组中插入值。如果值的类型转换为要插入,则它与输入数组不同。 插入没有原地的,函数会返回一个新数组。 此外,如果未提供轴,则输入数组会被展开为一维数组。
a = np.array([[1, 2], [3, 4], [5, 6]])
print(a)
print(np.insert(a, 1, 123))
print(np.insert(a, 1, 123, axis=0))
print(np.insert(a, 1, 123, axis=1))
# np.insert(a, 1, 123): array([ 1, 123,  2,  3,  4,  5,  6])
# np.insert(a, 1, 123, axis=0): array([[ 1,  2],
#                                     [123, 123],
#                                     [ 3,  4],
#                                     [ 5,  6]])
# np.insert(a, 1, 123, axis=1): array([[ 1, 123,  2],
#                                     [ 3, 123,  4],
#                                     [ 5, 123,  6]])

2.数列删除元素(np.delete)

numpy.delete(arr, obj, axis)

  • arr:输入数组
  • obj:可以被切片,整数或者整数数组,表明要从输入数组删除的子数组
  • axis:沿着它删除给定子数组的轴,如果未提供,则输入数组会被展开
  • 基础示例
print("2.数列删除元素")
b=np.array([x for x in range(0,11)])
print(b)
b=np.delete(b,2)#删除了从0开始索引为2的元素
print(b)
  • 更多示例
a = np.arange(12).reshape(3, 4)
print(a)
print(np.delete(a, 5)) #未传递axis参数,再插入之前数组会被展开
print(np.delete(a, 1, axis=0))  #删除第二行
b = np.arange(1, 11)
print(b)
print(b[np.s_[::2]])   #np.s_可以当作索引
print(np.delete(b, np.s_[::2])) #删去索引为2的倍数的元素
# a: array([[ 0,  1,  2,  3],
#           [ 4,  5,  6,  7],
#           [ 8,  9, 10, 11]])
# np.delete(a, 5): array([ 0,  1,  2,  3,  4,  6,  7,  8,  9, 10, 11])
# np.delete(a, 1, axis=0): array([[ 0,  1,  2,  3],
#                                 [ 8,  9, 10, 11]])
# b: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
# b[np.s_[::2]]: array([1, 3, 5, 7, 9])
# np.delete(b, np.s_[::2]): array([ 2,  4,  6,  8, 10])

3. 数列修改元素(通过索引和切片得到的变量直接赋值修改 )

c=np.array([x for x in range(0,11)])
print(c)
c[2]=100#把索引2位置赋值100
print(c)

4. 数列查询元素

4.1 基础索引与切片
  1. 一维数组索引
    通过整数索引直接访问元素,支持正负索引(负数表示倒数):

    import numpy as np
    arr = np.array([10, 20, 30, 40, 50])
    print(arr[0])    # 10(首元素)
    print(arr[-1])   # 50(末元素)[4,5](@ref)
    
  2. 多维数组索引
    用逗号分隔不同维度的索引值:

    arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
    print(arr_2d[1, 0])  # 4(第1行第0列)[8](@ref)
    
  3. 切片操作
    语法:[start:end:step](左闭右开区间):

    arr = np.array([0, 1, 2, 3, 4, 5])
    print(arr[1:4])    # [1, 2, 3](索引1到3)
    print(arr[::2])    # [0, 2, 4](步长为2)[4,8](@ref)
    

4.2 条件查询(布尔索引)

通过逻辑表达式筛选满足条件的元素:

arr = np.array([3, 5, 7, 9, 11])
mask = arr > 5
print(arr[mask])  # [7, 9, 11](所有大于5的元素)[6,8](@ref)

复合条件

mask = (arr > 4) & (arr < 10)  # 且关系
print(arr[mask])  # [5, 7, 9][5](@ref)

4.3 位置索引查询
  1. 查找单个元素位置
    使用index()方法(仅适用于列表):

    lst = [10, 20, 30, 20]
    try:idx = lst.index(20)  # 返回第一个匹配项的索引print(idx)  # 1
    except ValueError:print("元素不存在")[3,5](@ref)
    
  2. 查找所有匹配位置
    结合enumerate()和列表推导式:

    lst = [10, 20, 30, 20]
    positions = [i for i, x in enumerate(lst) if x == 20]
    print(positions)  # [1, 3][3,5](@ref)
    
  3. NumPy高效定位
    使用np.where()返回满足条件的索引数组:

    arr = np.array([10, 20, 30, 20])
    positions = np.where(arr == 20)[0]
    print(positions)  # [1, 3][3,6](@ref)
    

4.4 高级索引技巧
  1. 花式索引(Fancy Indexing)
    用整数数组同时访问多个不连续位置:

    arr = np.array([0, 10, 20, 30, 40])
    print(arr[[1, 3, 4]])  # [10, 30, 40][6,7](@ref)
    
  2. 多维花式索引
    组合行列索引数组:

    arr_2d = np.array([[1, 2], [3, 4], [5, 6]])
    rows = [0, 2]
    cols = [1, 0]
    print(arr_2d[rows, cols])  # [2, 5]((0,1)和(2,0)的元素)[7](@ref)
    

**4.5 嵌套结构与对象查询
  1. 嵌套列表查询
    逐层遍历定位元素:

    nested_list = [[1, 2], [3, 4], [5, 6]]
    for i, sublist in enumerate(nested_list):if 4 in sublist:col_idx = sublist.index(4)print(f"位置: ({i}, {col_idx})")  # (1, 1)[3](@ref)
    
  2. 自定义对象查询
    根据对象属性匹配:

    class Point:def __init__(self, x, y):self.x = xself.y = y
    points = [Point(1,2), Point(3,4)]
    idx = next(i for i, p in enumerate(points) if p.x == 3)
    print(idx)  # 1[3](@ref)
    

4.6 性能优化建议

场景推荐方法原因
小规模列表index()或列表推导式代码简洁,内存开销小
大规模数值数组np.where()向量化操作,速度提升10倍以上
频繁查询转换为字典或集合哈希表查询复杂度O(1)
避免修改原数据使用.copy()防止切片视图意外修改原数组

完整代码示例

import numpy as np# 基础索引与切片
arr = np.arange(10)  # [0,1,2,...,9]
print("切片示例:", arr[3:7])  # [3,4,5,6]# 条件查询
arr = np.array([12, 15, 18, 21])
print("大于15的元素:", arr[arr > 15])  # [18,21]# 位置索引查询
positions = np.where(arr % 2 == 0)[0]
print("偶数索引:", positions)  # [0,2]# 花式索引
data = np.array([[10,20], [30,40], [50,60]])
print("花式索引结果:", data[[0,2], [1,0]])  # [20,50]

关键总结

  1. 基础访问:索引和切片是核心,注意切片是视图(共享内存)。
  2. 条件筛选:布尔索引是NumPy的向量化优势,避免Python循环。
  3. 定位优化:小数据用index(),大数据用np.where()
  4. 嵌套结构:逐层遍历时优先用in判断存在性,避免异常。
  5. 性能陷阱:
    • 避免在循环中重复计算条件(如arr > 5应预计算)
    • 超大数据考虑分块处理(np.memmap内存映射)

数据清洗 NumPy数组操作与数据清洗指南:数据去重详解

一、数据去重函数:numpy.unique()

numpy.unique()是NumPy库中专门用于处理数组去重的核心函数,它不仅能移除重复值,还能提供多种附加功能。

函数原型与参数说明

numpy.unique(arr, return_index=False, return_inverse=False, return_counts=False, axis=None)

参数详解:

参数类型说明
arr数组输入数组,可以是任意维度的NumPy数组
return_indexbool为True时返回去重元素在原数组的首次出现索引
return_inversebool为True时返回原数组元素在去重数组中的索引
return_countsbool为True时返回去重元素在原数组的出现次数
axisint指定操作的维度轴(0=行,1=列,None=展平为一维)

基本用法示例

import numpy as np# 一维数组去重
arr = np.array([3, 1, 2, 2, 3, 4, 5, 4])
unique_arr = np.unique(arr)
print(unique_arr)  # 输出: [1 2 3 4 5]# 二维数组默认展平去重
arr_2d = np.array([[1, 2, 3], [3, 4, 5], [1, 2, 3]])
print(np.unique(arr_2d))  # 输出: [1 2 3 4 5]

高级参数应用

1. 获取元素首次出现位置(return_index)
values, indices = np.unique(arr, return_index=True)
print("去重值:", values)       # [1 2 3 4 5]
print("首次出现位置:", indices)  # [1 2 0 5 6]
2. 重构原始数组(return_inverse)
values, inverse = np.unique(arr, return_inverse=True)
print("去重值:", values)           # [1 2 3 4 5]
print("重构索引:", inverse)        # [2 0 1 1 2 3 4 3]
reconstructed = values[inverse]
print("重构数组:", reconstructed)  # [3 1 2 2 3 4 5 4]
3. 统计元素出现次数(return_counts)
values, counts = np.unique(arr, return_counts=True)
print("去重值:", values)     # [1 2 3 4 5]
print("出现次数:", counts)    # [1 2 2 2 1]

多维数组按轴去重

# 创建三维数组
arr = np.array([[[1, 2], [3, 4], [1, 2]],[[5, 6], [1, 2], [5, 6]],[[7, 8], [3, 4], [7, 8]]
])# 沿行去重 (axis=0)
print("行去重:\n", np.unique(arr, axis=0)) 
# 输出:
# [[[1 2]
#   [3 4]
#   [1 2]]
#
#  [[5 6]
#   [1 2]
#   [5 6]]
#
#  [[7 8]
#   [3 4]
#   [7 8]]]# 沿列去重 (axis=1)
print("\n列去重:\n", np.unique(arr, axis=1))
# 输出:
# [[[1 2]
#   [3 4]]
#
#  [[1 2]
#   [5 6]]
#
#  [[3 4]
#   [7 8]]]

二、其他去重方法对比

虽然numpy.unique()是NumPy中最直接的去重方法,但Python还提供了其他替代方案:

1. 集合(Set)去重

arr = [3, 1, 2, 2, 3, 4, 5, 4]
unique_list = list(set(arr))
print(unique_list)  # [1, 2, 3, 4, 5]

特点:简单高效但不保留顺序

2. 有序字典(OrderedDict)去重

from collections import OrderedDict
unique_list = list(OrderedDict.fromkeys(arr))
print(unique_list)  # [3, 1, 2, 4, 5]

特点:保持原始顺序但需要额外导入模块

3. Pandas去重

import pandas as pd
df = pd.DataFrame(arr, columns=['values'])
unique_df = df.drop_duplicates()
print(unique_df['values'].tolist())  # [3, 1, 2, 4, 5]

特点:适合处理DataFrame结构数据

三、性能对比与选择建议

方法优势劣势适用场景
numpy.unique()支持多维数组 返回丰富统计信息结果自动排序数值数据科学计算
集合(set)速度最快(O(n))不保留顺序简单快速去重
字典(dict)保留插入顺序需要额外转换需要保留顺序的简单数据
Pandas处理DataFrame方便依赖Pandas库DataFrame数据处理

最佳实践建议

  1. 纯数值数组处理优先使用numpy.unique()
  2. 需要保留原始顺序时使用字典dict.fromkeys()
  3. 处理DataFrame数据时使用Pandas的drop_duplicates()
  4. 简单列表去重可使用集合(set)转换

四、实用技巧与注意事项

  1. 保持原始顺序:使用return_index参数

    arr = np.array([3, 1, 2, 2, 3, 4, 5, 4])
    _, idx = np.unique(arr, return_index=True)
    sorted_idx = np.sort(idx)
    print(arr[sorted_idx])  # [3 1 2 4 5]
    
  2. 处理特殊值

    # 包含NaN值的数组
    arr_nan = np.array([3.0, 1.0, np.nan, 2.0, np.nan])
    unique_nan = np.unique(arr_nan)
    print(unique_nan)  # [ 1.  2.  3. nan]
    
  3. 性能优化:对于超大型数组(>1e6元素),可考虑分块处理:

    def chunked_unique(arr, chunk_size=1000000):chunks = [arr[i:i+chunk_size] for i in range(0, len(arr), chunk_size)]unique_vals = np.unique(np.concatenate([np.unique(chunk) for chunk in chunks]))return unique_vals
    
  4. 内存优化:使用return_inverse重构数组比存储原数组更省内存

五、综合应用示例

# 创建包含重复数据的二维数组
data = np.array([[101, 'John', 'Sales'],[102, 'Anna', 'Engineering'],[101, 'John', 'Sales'],[103, 'Peter', 'Marketing'],[102, 'Anna', 'Engineering']
])# 按员工ID去重并统计出现次数
ids = data[:, 0]
unique_ids, indices, counts = np.unique(ids, return_index=True, return_counts=True)# 创建去重后的数据表
unique_data = data[indices]# 添加出现次数列
result = np.column_stack((unique_data, counts.astype(str)))print("去重结果:")
print(result)
"""
输出:
[['101' 'John' 'Sales' '2']['102' 'Anna' 'Engineering' '2']['103' 'Peter' 'Marketing' '1']]
"""

通过掌握numpy.unique()及其相关方法,能高效处理各种数据去重需求,为后续数据分析提供干净、准确的数据基础。


总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-1-10

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包Python文件】
【更多内容敬请期待】


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

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

相关文章

CMU-15445(6)——PROJECT#2-BPlusTree-Task#1

PROJECT#2-BTree 在 PROJECT#2 中&#xff0c;我们需要实现一个B plus Tree&#xff0c;用过 MySQL 的同学肯定对它不陌生&#xff0c;BTree是实现高效数据检索的核心组件&#xff0c;其内部节点的作用是引导搜索过程&#xff0c;而实际的数据项则存于叶子节点中。该索引结构能…

向量数据库搜索原理解密:从暴力扫描到近似最近邻的演进之路

摘要 向量数据库已成为处理AI时代海量非结构化数据的核心基础设施。本文深入解析向量搜索的六大核心技术原理,涵盖暴力扫描、树结构索引、量化压缩、图导航算法等核心机制,通过10张架构图解与数学公式推导,揭示千万级向量毫秒级检索背后的工程奇迹。全文超5000字,包含Fais…

Yolov7训练自己的数据集和ONNX/TRT部署

Yolov7训练自己的数据集和ONNX/Trt部署 一、环境配置 1.1 项目下载 项目原地址&#xff1a;GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 打开终端&#xff0c;输…

Python - 数据分析三剑客之NumPy

在Python中&#xff0c;NumPy、Pandas和Matplotlib是进行数据分析和数据可视化的三个核心库。它们各自有不同的功能&#xff0c;但经常一起使用来处理和分析数据。 1、NumPy NumPy&#xff08;Numerical Python&#xff09;是一个用于科学计算的库&#xff0c;提供了高性能的…

百度文库智能PPT月访问量超3400万,用户规模翻倍增长

6月27日&#xff0c;极光旗下月狐数据发布《2025年智能PPT行业市场研究报告》。报告显示&#xff0c;智能PPT市场整体增速年同比超50%&#xff0c;市场玩家成倍激增。其中&#xff0c;百度文库智能PPT月访问量超3400万、位列全球第一&#xff0c;市场份额在中国位于断崖式领先。…

远眺科技工业园区数字孪生方案,如何实现智能管理升级?

面对工业园区日益复杂的能耗管控、环境监测、安全运维需求&#xff0c;传统管理模式已经难以为继。而数字孪生技术&#xff0c;正好成为解决上述问题的关键“解药”。本文将以远眺工业园区数字孪生项目为例&#xff0c;为您剖析数字孪生技术如何解决数据孤岛、响应滞后等痛点。…

成都芯谷金融中心文化科技园:打造区域科技活力

在成渝地区双城经济圈建设加速推进的背景下&#xff0c;成都芯谷金融中心文化科技园正以"科技文化金融"的融合创新模式&#xff0c;重塑区域产业生态&#xff0c;成为驱动城市高质量发展的活力源泉。这座总建筑面积达45万平方米的产城综合体&#xff0c;不仅承载着双…

Claude Code 全面指南:从安装到高效开发的实用教程

在 AI 助手逐渐成为开发者标配的今天&#xff0c;Claude Code 作为 Anthropic 推出的一款智能编程工具&#xff0c;凭借其强大的自然语言交互和自动化能力&#xff0c;正迅速改变着软件开发的方式。本文将详细介绍 Claude Code 的功能、安装配置、使用方法及安全与成本管理&…

在Flutter中生成App Bundle并上架Google Play

Ran tool 要在Flutter中生成App Bundle并上架Google Play&#xff0c;请按照以下步骤操作&#xff1a; 1. 准备签名密钥 首先需要创建一个密钥库用于签名&#xff1a; keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias …

kubernetes pod调度基础

目录 Replication Controller 和 ReplicaSet 标签与标签选择器 无状态应用管理Deployment 有状态应用管理StatefulSet 守护进程集DaemonSet Replication Controller 和 ReplicaSet RC用来确保Pod副本数达到期望值,这样可以确保一个或多七个同类Pod总是可用的 如果存在的P…

Vue 3 响应式核心源码详解(基于 @vue/reactivity)

&#x1f9ec; Vue 3 响应式核心源码详解&#xff08;基于 vue/reactivity&#xff09; ⚙️ 整理不易&#xff0c;记得点赞、收藏、关注&#xff0c;揭开 Vue 响应式的神秘面纱&#xff01; &#x1f9ed; 一、源码结构总览&#xff08;relevant files&#xff09; Vue 的响应…

编写shell脚本扫描工具,扫描服务器开放了哪些端口(再尝试用python编写一个)

先将需要扫描的服务器的端口显示出来&#xff0c;然后再显示哪些ip地址对应的服务器的哪些端口已开放或未开放 下面这个shell脚本可以同时扫描多个ip对应的多个服务器的多个端口是否开放&#xff1a; 以下是运行结果&#xff1a; nc 和 nmap 扫描别人的机器开放了哪些端口 ne…

java JNDI高版本绕过 工具介绍 自动化bypass

JNDI高版本rce失效问题 原因&#xff1a; 主要还是协议控制高版本的一般都会关闭如rmi&#xff0c;ldap等协议远程加载的类 RMI限制&#xff1a; com.sun.jndi.rmi.object.trustURLCodebase、com.sun.jndi.cosnaming.object.trustURLCodebase的默认值变为false&#xff0c;即…

JavaWeb笔记02

三、数据库设计 1_简介 1.数据库设计设计什么&#xff1f; 有哪些表 表里有哪些字段 表和表之间是什么关系 2.表关系有哪几种&#xff1f; 一对一 一对多&#xff08;多对一&#xff09; 多对多 2_多表关系实现 表关系之一对多 一对多 (多对一): 如&#xff1a;部门表和员…

Junit_注解_枚举

文章目录 一&#xff1a;Junit单元测试测试分类&#xff1a;Junit的使用Before_After 二&#xff1a;注解什么是注解文档相关的注解IDEA中的javadoc使用&#xff1a;JDK内置的3个注解自定义注解 元注解RetentionTargetRepeatableDocumented&#xff08;用的很少&#xff09;Inh…

将N8N配置为服务【ubuntu】

docker模式不在此讨论。这里讨论的是node安装为n8n后&#xff0c;如何安装为服务&#xff1a; 安装NODE&#xff08;略&#xff09; 安装N8N 一个命令解决&#xff1a; npm install n8n -g 安装服务 vi /etc/systemd/system/n8n.service内容如下 [Unit] Descriptionn8…

Java后端调用外部接口标准流程详解

在Java后端开发中&#xff0c;调用外部HTTP接口&#xff08;如第三方平台API、云服务、微服务等&#xff09;是非常常见的需求。实现这个功能通常遵循一套标准的流程&#xff1a; 1. 准备DTO类&#xff08;数据传输对象&#xff09; 作用&#xff1a; DTO&#xff08;Data Tra…

星火燎原 数智新生 —— 《GB/T 45341—2025》 × AI大模型 × 全域PaaS创新,领码SPARK打造行业数字化转型新范式

【摘要】 数字中国新征程&#xff0c;标准引航数智化。面对企业数字蝶变的关键关口&#xff0c;《GB/T 45341—2025 数字化转型管理 参考架构》引领行业规范发展。爱分析最新数据显示&#xff0c;中国iPaaS市场规模持续高增长&#xff0c;印证PaaS已成为企业数字化基石。 AI大…

25-7-1 论文学习(1)- Fractal Generative Models 何恺明大佬的论文

分形生成模型 Tianhong Li1 Qinyi Sun1 Lijie Fan2 Kaiming He1 摘要 模块化是计算机科学的基石&#xff0c;它将复杂函数抽象为原子构建块。在本文中&#xff0c;我们通过将生成模型抽象为原子生成模块&#xff0c;引入了新的模块化层次。类似于数学中的分形&#xff0c;我…

如何读取运行jar中引用jar中的文件

1.问题发现 项目中有个common包资源文件&#xff0c;然后springboot项目引用了common&#xff0c;那么我们要怎么读取这个资源了。这里需要考虑三个场景&#xff0c;idea运行时、common jar独立运行时、springboot引用common后运行时。 2.问题解决 2.1.idea运行时 Protection…