【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
英文地址,請注明出處:http://en.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…