數據分析小白訓練營:基于python編程語言的Numpy庫介紹(第三方庫)(下篇)

銜接上篇文章:數據分析小白訓練營:基于python編程語言的Numpy庫介紹(第三方庫)(上篇)

(十一)數組的組合

核心功能:

一、生成基數組

np.arange().reshape()?+ 基礎運算

  • 功能:創建初始數組并進行數值變換

  • 示例
    array1 = np.arange(9).reshape(3,3)  # 生成3x3矩陣 [[0,1,2],[3,4,5],[6,7,8]]
    array2 = 2 * array1                 # 逐元素乘以2 → [[0,2,4],[6,8,10],[12,14,16]]
    
  • 關鍵操作

    • np.arange(9):生成0~8的一維數組

    • .reshape(3,3):重塑為3行3列的二維數組

    • 2 * array1:利用廣播機制對每個元素進行標量乘法


二、水平組合(橫向拼接)

np.hstack()?與?np.concatenate(axis=1)

  • 功能:將多個數組沿列方向(水平)拼接

  • 示例

    a3 = np.hstack((array1, array2))    # 拼接后形狀: 3x6
    a4 = np.hstack((array2, array1))    # 交換順序拼接
    a5 = np.hstack((array1, array2, array1)) # 連續拼接三個數組
    a6 = np.concatenate((array1, array2), axis=1) # 等價于hstack
  • 特點

    • hstack:專門用于水平拼接,自動按列對齊

    • concatenate(axis=1):通過指定軸實現相同效果,靈活性更高


三、垂直組合(縱向拼接)

np.vstack()?與?np.concatenate(axis=0)

  • 功能:將多個數組沿行方向(垂直)拼接

  • 示例
    a7 = np.vstack((array2, array1))    # 拼接后形狀: 6x3
    a8 = np.concatenate((array1, array2), axis=0) # 等價于vstack
    
  • 特點

    • vstack:專門用于垂直拼接,自動按行對齊

    • concatenate(axis=0):通過指定軸實現相同效果,適用于多數組拼接

關鍵區別總結:

操作類型語法示例拼接方向維度變化適用場景
np.hstack()hstack((A, B))水平列數相加合并同類特征的不同樣本
concatenate(axis=1)concatenate((A,B), axis=1)水平同上更靈活的多數組拼接
np.vstack()vstack((A, B))垂直行數相加堆疊不同樣本的數據
concatenate(axis=0)concatenate((A,B), axis=0)垂直同上更靈活的多數組拼接

示例代碼:

import numpy as np#生成基數組
array1 = np.arange(9).reshape(3,3)
array2 = 2*array1
print(array1)
print(array2)#水平組合
a3 = np.hstack((array1,array2))#水平方向變長
a4 = np.hstack((array2,array1))
a5 = np.hstack((array1,array2,array1))a6 = np.concatenate((array1,array2),axis=1)#1為水平組合,0為垂直組合#垂直組合
a7 = np.vstack((array2,array1))a8 = np.concatenate((array1,array2),axis=0)
print(1)

(十二)numpy內數組元素的切割

核心功能:

一、創建基礎數組

np.arange().reshape()

  • 功能:生成連續數值并重塑為指定形狀的二維數組

  • 示例

    array1 = np.arange(16).reshape(4,4)  # 生成4x4矩陣 [[0,1,2,3],[4,5,6,7],...]
    print(array1)
    
  • 關鍵點np.arange(16)?生成0~15的一維數組,.reshape(4,4)?將其重塑為4行4列的二維數組


二、等分切割(嚴格均分)

1.?水平切割(沿列方向)

  • 方法1np.hsplit(array, n)

    • 功能:將數組沿水平方向(列)均分為?n?等份

    • 示例a = np.hsplit(array1, 2)?→ 將4列均分為2份,每份2列,返回兩個形狀為?(4,2)?的子數組

  • 方法2np.split(array, n, axis=1)

    • 功能:與?hsplit?等價,通過?axis=1?明確指定列方向

    • 示例b = np.split(array1, 2, axis=1)?→ 結果同?a

2.?垂直切割(沿行方向)

  • 方法1np.vsplit(array, n)

    • 功能:將數組沿垂直方向(行)均分為?n?等份

    • 示例c = np.vsplit(array1, 2)?→ 將4行均分為2份,每份2行,返回兩個形狀為?(2,4)?的子數組

  • 方法2np.split(array, n, axis=0)

    • 功能:與?vsplit?等價,通過?axis=0?明確指定行方向

    • 示例d = np.split(array1, 2, axis=0)?→ 結果同?c


三、強制切割(允許不等分)

1.?水平強制切割

  • 函數np.array_split(array, n, axis=1)

    • 功能:將數組沿水平方向(列)強制分為?n?份,允許不等分

    • 示例e = np.array_split(array1, 3, axis=1)?→ 將4列分為3份,前兩份各2列,最后一份0列(實際為2列,因余數分配)

    • 特點:若無法均分,余數會分配到前面的塊中

2.?垂直強制切割

  • 函數np.array_split(array, n, axis=0)

    • 功能:將數組沿垂直方向(行)強制分為?n?份,允許不等分

    • 示例f = np.array_split(array1, 3, axis=0)?→ 將4行分為3份,前兩塊各2行,最后一塊0行(實際為0行,但此處無意義)


四、非均勻數組的強制切割

示例:5x5數組的切割

  • 代碼

    array1 = np.arange(25).reshape(5,5)  # 5x5矩陣
    g = np.array_split(array1, 3, axis=1)  # 水平切分為3份
    h = np.array_split(array1, 3, axis=0)  # 垂直切分為3份
    
  • 特點

    • 水平切割:5列分為3份 → 前兩塊各2列,最后一塊1列

    • 垂直切割:5行分為3份 → 前兩塊各2行,最后一塊1行

關鍵區別總結:

函數是否允許不等分切割方向適用場景
np.hsplit()水平嚴格均分列
np.vsplit()垂直嚴格均分行
np.split(axis=1)水平同?hsplit
np.split(axis=0)垂直同?vsplit
np.array_split()任意需處理不等分場景(如數據不足)

代碼示例:

import numpy as nparray1 = np.arange(16).reshape(4,4)
print(array1)#水平切割
a = np.hsplit(array1,2)#其中第二個參數2,表示將矩陣array1進行2等份的切分
print(a)b = np.split(array1,2,axis=1)#垂直切割
c = np.vsplit(array1,2)
d = np.split(array1,2,axis=0)#強制切割
#水平切割
e = np.array_split(array1,3,axis=1)#垂直切割
f = np.array_split(array1,3,axis=0)###########################################
array1 = np.arange(25).reshape(5,5)
print(array1)g = np.array_split(array1,3,axis=1)h = np.array_split(array1,3,axis=0)

(十三)數組的算數運算

核心功能:

一、創建基礎數組

np.arange().reshape()

  • 功能:生成指定范圍內的等差數列并重塑為指定形狀的數組

  • 示例

    array1 = np.arange(1,5,1).reshape(2,2)  # 生成 [[1,2],[3,4]]
    
  • 關鍵參數

    • np.arange(1,5,1):起始值=1,終止值=5(不含),步長=1 → 生成?[1,2,3,4]

    • .reshape(2,2):將一維數組重塑為2行2列的二維數組

標量乘法生成新數組

  • 功能:通過標量乘法快速生成關聯數組

  • 示例

    array2 = 2 * array1  # 每個元素乘以2 → [[2,4],[6,8]]
    
  • 特點:利用 NumPy 的廣播機制,標量自動擴展至與數組同形


二、逐元素數學運算

1.?加法?+

  • 功能:對應位置元素相加

  • 示例

    print(array1 + array2)  # 輸出: [[3,6],[9,12]]
    
  • 計算邏輯1+2=3,?2+4=6,?3+6=9,?4+8=12

2.?減法?-

  • 功能:對應位置元素相減

  • 示例

    print(array1 - array2)  # 輸出: [[-1,-2],[-3,-4]]
    
  • 計算邏輯1-2=-1,?2-4=-2,?3-6=-3,?4-8=-4

3.?乘法?*

  • 功能:對應位置元素相乘

  • 示例

    print(array1 * array2)  # 輸出: [[2,8],[18,32]]
    
  • 計算邏輯1×2=2,?2×4=8,?3×6=18,?4×8=32

4.?除法?/

  • 功能:對應位置元素相除

  • 示例

    print(array1 / array2)  # 輸出: [[0.5,0.5],[0.5,0.5]]
    
  • 計算邏輯1/2=0.5,?2/4=0.5,?3/6=0.5,?4/8=0.5

5.?取余?%

  • 功能:對應位置元素取余數

  • 示例

    print(array2 % array1)  # 輸出: [[0,0],[0,0]]
    
  • 計算邏輯2%1=0,?4%2=0,?6%3=0,?8%4=0

6.?整除?//

  • 功能:對應位置元素整除(向下取整)

  • 示例

    print(array1 // array2)  # 輸出: [[0,0],[0,0]]
    
  • 計算邏輯1//2=0,?2//4=0,?3//6=0,?4//8=0

示例代碼:

import numpy as nparray1 = np.arange(1,5,1).reshape(2,2)
array2 = 2*array1
print(array1)
print(array2)#數組的加法【對應位置的元素求和】
print(array1 + array2)#數組的減法[對應位置元素相減]
print(array1 - array2)#數組的乘法【對應位置相乘】
print(array1 * array2)#數組的除法[對應位置相除]
print(array1 / array2)#數組的取余(%)
print(array2 % array1)#數組的取整
print(array1 // array2)

(十四)數組的深拷貝與淺拷貝

?NumPy 中淺拷貝與深拷貝的本質區別

  1. 淺拷貝:通過直接賦值實現,新舊數組共享內存,修改其一會影響另一者。
  2. 深拷貝:通過?.copy()?方法創建獨立副本,修改副本不影響原數組

核心功能:

1.?創建原始數組
array1 = np.array([1,2,3])  # 創建一維數組 [1,2,3]
  • 作用:初始化一個包含?[1,2,3]?的 NumPy 數組
2.?淺拷貝(引用賦值)
array2 = array1  # 淺拷貝:僅傳遞引用
  • 本質array2?和?array1?共享同一塊內存,修改任一變量會影響另一個
  • 驗證
    array2[0] = 100  # 修改 array2 的第一個元素
    print(array2)    # 輸出: [100, 2, 3]
    print(array1)    # 輸出: [100, 2, 3] ← 原數組也被修改!
    
  • 結論:淺拷貝不安全,對副本的修改會直接影響原數組
3.?深拷貝(獨立副本)
array3 = array1.copy()  # 深拷貝:創建獨立副本
  • 本質array3?是?array1?的完全獨立副本,擁有獨立內存空間
  • 驗證
    array3[0] = 10  # 修改 array3 的第一個元素
    print(array3)   # 輸出: [10, 2, 3]
    print(array1)   # 輸出: [1, 2, 3] ← 原數組未被修改!
    
  • 結論:深拷貝安全,對副本的修改不影響原數組

關鍵區別總結:

操作內存機制修改影響適用場景
淺拷貝共享原數組內存?修改副本 → 影響原數組無需保留原數據時(需謹慎使用)
深拷貝創建獨立內存?修改副本 → 不影響原數組需保留原數據時(推薦使用)

示例代碼:

import numpy as nparray1 = np.array([1,2,3])
#淺拷貝
array2 = array1#更改array2的元素的值
array2[0] = 100
print(array2)
print("#####################")
print(array1)#深拷貝
array3 = array1.copy()
array3[0] = 10
print(array3)
print("##################")
print(array1)

(十五)numpy內的隨機模塊兒(一)

核心功能:

1.?導入依賴庫
import numpy as np
import matplotlib.pyplot as plt
  • 作用:引入 NumPy(高效數值計算)和 Matplotlib(數據可視化)庫

2.?設置隨機種子
np.random.seed(1000)  # 固定隨機種子以保證結果可復現
  • 關鍵作用:鎖定隨機數生成器的初始狀態,使后續所有隨機操作的結果在多次運行中保持一致(便于調試和驗證)

3.?生成單個隨機整數
r1 = np.random.randint(0, 10)  # 左閉右開區間 [0, 10)
print(r1)
  • 功能:從?[0, 10)?的左閉右開區間內隨機抽取一個整數

  • 示例輸出:若種子為1000,則固定輸出?8(可通過多次運行驗證)

4.?生成隨機數組
a = []
for i in range(10):a0 = np.random.randint(0, 10)  # 每次獨立生成一個隨機整數a.append(a0)
print(a)
  • 功能:循環10次,每次生成一個?[0, 10)?范圍內的隨機整數,存入列表?a

  • 特點:由于已設置隨機種子,即使重啟程序,只要種子不變,生成的序列也完全相同

  • 示例輸出[8, 7, 9, 5, 8, 7, 6, 8, 5, 7](種子1000下的固定結果)

5.?繪制直方圖
a = []
for i in range(10):a0 = np.random.randint(0, 10)  # 每次獨立生成一個隨機整數a.append(a0)
print(a)
  • 功能:統計列表?a?中各數值的出現頻率,并以柱狀圖形式可視化

  • 參數說明

    • color='r':設置柱子顏色為紅色

    • plt.show():渲染并顯示圖像窗口

  • 預期效果:展示10個隨機數在?[0, 10)?區間內的分布情況(因樣本量較小,可能呈現非完美均勻分布)

示例代碼:

import numpy as np
import matplotlib.pyplot as plt
"""
randint(start,end):
產生一個隨機整數
(0,10) ->左閉右開的區間
"""
#隨機種子
np.random.seed(1000)#矩陣類型隨機
r1 = np.random.randint(0,10)
print(r1)#
a = []
for i in range(10):a0 = np.random.randint(0,10)a.append(a0)
print(a)
plt.hist(a,color='r')
plt.show()

(十六)numpy內的隨機模塊兒(二)

核心功能:

1.?單次隨機浮點數?np.random.rand()
r1 = np.random.rand()  # 生成 [0,1) 區間內的隨機浮點數
print(r1)
  • 功能:返回一個服從?均勻分布?的隨機浮點數,取值范圍?[0, 1)

  • 特點:無參數,適用于簡單隨機采樣場景

  • 示例輸出:如?0.7892(每次運行不同)

2.?標準正態分布隨機數?np.random.normal()
r1 = np.random.rand()  # 生成 [0,1) 區間內的隨機浮點數
print(r1)
  • 功能:從?標準正態分布(均值 μ=0,標準差 σ=1)中抽取一個樣本

  • 擴展性:可通過參數調整均值和標準差(見后續示例)

  • 示例輸出:如?1.2345(可能為負值)

3.?生成隨機整數矩陣?np.random.randint()
r3 = np.random.randint(0, 10, size=(5,5))  # 生成 5x5 的 [0,10) 區間內隨機整數矩陣
print(r3)
  • 功能:創建指定形狀的整數矩陣,元素取自?[low, high)?區間

  • 關鍵參數

    • low=0,?high=10:左閉右開區間

    • size=(5,5):輸出形狀為 5 行 5 列

  • 示例輸出

    [[3 7 9 1 5][8 2 6 4 0]...]
    
4.?生成均勻分布浮點矩陣?np.random.rand()
r4 = np.random.rand(5,5)  # 生成 5x5 的 [0,1) 區間內隨機浮點矩陣
print(r4)
  • 功能:創建指定形狀的浮點數矩陣,元素服從?[0,1)?均勻分布

  • 優勢:比循環更高效,直接生成多維數組

  • 示例輸出:全為?0~1?之間的浮點數

5.?生成自定義正態分布矩陣?np.random.normal()
r5 = np.random.normal(5, 10, size=(5,5))  # 生成均值 μ=5,標準差 σ=10 的正態分布矩陣
print(r5)
  • 功能:創建指定形狀的正態分布矩陣,可自定義均值和標準差

  • 參數說明

    • loc=5:均值 μ

    • scale=10:標準差 σ

    • size=(5,5):輸出形狀

  • 示例輸出:大部分值集中在?5 ± 3×10?范圍內(約?-25 ~ 35

關鍵區別總結:

函數分布類型取值范圍典型用途
np.random.rand()均勻分布[0, 1)簡單隨機采樣、初始化權重
np.random.normal()正態分布(-∞, +∞)模擬自然現象、噪聲添加
np.random.randint()離散均勻分布[low, high)生成隨機索引、分類標簽
np.random.rand()連續均勻分布[0, 1)快速生成多維隨機浮點矩陣
np.random.normal()自定義正態分布(μ - kσ, μ + kσ)數據增強、蒙特卡洛模擬

示例代碼:

import numpy as np"""
rand() ->(0,1)之間的隨機浮點數
"""
#np.random.seed(100)
r1 = np.random.rand()
print(r1)"""
normal() ->生成一些符合正態分布的數據
N~(0,1)
"""
r2 = np.random.normal()
print(r2)
#################################
#生成隨機數矩陣r3 = np.random.randint(0,10,size=(5,5))
print(r3)r4 = np.random.rand(5,5)
print(r4)r5 = np.random.normal(5,10,size=(5,5))
print(r5)

(十七)numpy內一些函數的使用

核心功能:

1.?生成正態分布隨機矩陣
array1 = np.random.normal(size=(3,3))  # 生成3x3的正態分布隨機矩陣
print(array1)
  • 功能:創建一個形狀為?(3,3)?的二維數組,其中每個元素獨立采樣自標準正態分布(默認均值 μ=0,標準差 σ=1)

  • 特點:無需顯式指定均值和標準差時,默認使用標準正態分布;若需自定義參數可添加?loc(均值)和?scale(標準差)參數

  • 示例輸出:類似如下結構(具體數值因隨機性不同):

    [[ 0.4967  1.5292 -0.0769][ 0.2784  0.8655  1.2064][-0.4052  0.1763  0.7658]]
    
2.?基礎統計量計算
# 求方差
print(array1.var())  # 全局方差(所有元素的方差)# 求標準差
a = array1.std()    # 全局標準差# 求均值
b = array1.mean()   # 全局均值# 求和
c = array1.sum()    # 所有元素的總和# 求中位數
d = np.median(array1)  # 全局中位數
  • 關鍵函數

    • var():計算數組所有元素的方差(衡量數據離散程度)

    • std():計算標準差(方差的平方根,更直觀反映波動幅度)

    • mean():計算算術平均值(數據的中心趨勢)

    • sum():對所有元素求和

    • np.median():計算中位數(排序后中間值,抗異常值干擾)

  • 注意:直接調用?array1.median()?會報錯,需使用?np.median(array1)

3.?按行/列求和
# 對矩陣的行求和(axis=1)
e = array1.sum(axis=1)  # 每行元素相加,結果為長度為3的一維數組# 對矩陣的列進行求和(axis=0)
f = array1.sum(axis=0)  # 每列元素相加,結果為長度為3的一維數組
  • axis?參數含義

    • axis=1:沿行方向求和(壓縮行維度,保留列維度)

    • axis=0:沿列方向求和(壓縮列維度,保留行維度)

  • 示例輸出

    • e:每行的總和,如?[1.9489, 2.2793, 0.5369]

    • f:每列的總和,如?[0.3699, 2.5710, 1.8953]

關鍵概念總結:

操作功能描述返回值類型典型用途
np.random.normal()生成正態分布隨機數ndarray模擬自然現象、初始化權重
var()計算全局方差float評估數據離散程度
std()計算全局標準差float衡量數據波動范圍
mean()計算全局均值float獲取數據平均水平
sum()所有元素求和float快速累加總和
np.median()計算全局中位數float避免極端值影響的中心度量
sum(axis=1)按行求和1D array分析每行數據的總效應
sum(axis=0)按列求和1D array分析每列數據的總效應

代碼示例:

import numpy as nparray1 = np.random.normal(size = (3,3))
print(array1)#一些函數
#求方差
print(array1.var())#求標準差
a = array1.std()#求均值
b = array1.mean()#求和
c = array1.sum()#求中位數
#array1.median()
d = np.median(array1)#求和運算
#對矩陣的行求和
e = array1.sum(axis=1)
#對矩陣的列進行求和
f = array1.sum(axis=0)

(十八)矩陣的運算

核心功能:

1.?生成基數組

a = np.arange(4).reshape(2,2)  # 創建2x2矩陣 [[0,1],[2,3]]
b = a.copy()                    # 深拷貝生成獨立副本
  • np.arange(4):生成一維數組?[0,1,2,3]

  • .reshape(2,2):將一維數組重塑為 2 行 2 列的二維矩陣

  • copy():創建深拷貝,確保?b?與?a?獨立(修改?b?不影響?a

2.?矩陣乘法
a1 = a.dot(b)          # 方法1:通過 .dot() 計算矩陣乘積
a2 = np.dot(a, b)      # 方法2:通過 np.dot() 計算矩陣乘積
  • 功能:計算兩個 2x2 矩陣的標準矩陣乘積(行列對應相乘再求和)

  • 等價性:兩種方法結果相同,均返回新的 2x2 矩陣

  • 數學公式:若?A=[[a,b],[c,d]],?B=[[e,f],[g,h]],則?AB=[[ae+bg, af+bh], [ce+dg, cf+dh]]

3.?矩陣求逆
a3 = np.linalg.inv(a)  # 計算矩陣 a 的逆矩陣
  • 前提:僅當矩陣滿秩且行列式不為零時存在逆矩陣

  • 作用:若?a?可逆,則?a @ a3 == I(單位矩陣),用于求解線性方程組或反轉變換

  • 風險提示:若矩陣不可逆(如奇異矩陣),會拋出?LinAlgError

4.?自定義矩陣乘法
a4 = a.dot([[-1.5,  0.5], [1. ,  0. ]])  # 手動指定第二個矩陣進行乘法
print(a4)
  • 功能:將原始矩陣?a?與預定義的 2x2 矩陣相乘,模擬線性變換

  • 應用場景:此類操作常見于圖像處理(仿射變換)、機器學習特征轉換等場景

  • 輸出示例:假設?a=[[0,1],[2,3]],則計算過程為:

    • 第一行:0*(-1.5)+1*1=1,?0*0.5+1*0=0?→?[1, 0]

    • 第二行:2*(-1.5)+3*1=-3+3=0,?2*0.5+3*0=1?→?[0, 1]

    • 最終結果:[[1, 0], [0, 1]](單位矩陣)

關鍵概念總結:

操作功能描述注意事項
np.arange().reshape()創建指定形狀的初始化矩陣默認按行優先填充數據
.copy()生成深拷貝,避免共享內存修改副本不影響原數組
.dot()?/?np.dot()計算矩陣乘積要求矩陣維度匹配(前導矩陣列數=后繼行數)
np.linalg.inv()計算矩陣的逆僅適用于非奇異矩陣(行列式≠0)
自定義矩陣乘法實現線性變換或復合操作可用于驗證變換效果或設計特定算法

示例代碼:

import numpy as np#生成兩個基數組
a = np.arange(4).reshape(2,2)
b = a.copy()#矩陣的運算
#加減乘除(求逆)
#加減 ->對應元素加減#矩陣的乘法【點乘】
#a * b
a1 = a.dot(b)
a2 = np.dot(a,b)#矩陣求逆
"""
inv():
并不是所有的矩陣都有逆;
即使你沒有逆,給你一個逆【偽逆】
"""
a3 = np.linalg.inv(a)a4 = a.dot([[-1.5,  0.5],[ 1. ,  0. ]])
print(a4)

(十九)讀取文件

核心功能:

一、np.loadtxt()?- 從文本文件加載數據
核心功能

?高效讀取結構化文本數據:將純文本文件中的數值數據快速轉換為 NumPy 數組
靈活處理分隔符:支持通過?delimiter?參數自定義列分隔符(如?\t,、空格等)
自動適配行列結構:假設文件中每一行的數值數量相同,按順序填充到數組的行與列中

代碼示例 & 關鍵參數
data = np.loadtxt('文件讀取.txt', delimiter='\t')  # 若為CSV文件則用 delimiter=','
print(data)
  • delimiter: 定義字段分隔符(默認為任意空白字符)
  • 適用場景:讀取傳感器日志、CSV/TSV格式數據、科學計算輸入文件等
典型應用
# 假設文件內容如下(制表符分隔):
# 1    2    3
# 4    5    6
# 7    8    9# 執行后 data 變為:
array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])

二、np.savetxt()?- 將數組保存到文本文件
核心功能

?反向操作:將 NumPy 數組以純文本形式持久化存儲
人性化輸出:默認以固定寬度排版,便于閱讀;可通過?fmt?參數定制數值格式
跨平臺兼容:生成標準文本文件,無需依賴特定二進制格式

代碼示例 & 關鍵參數
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.savetxt('array.txt', array)  # 默認用空白分隔
  • 擴展性:可添加?fmt='%d'(整數)、delimiter=', '(逗號分隔)等參數
  • 適用場景:導出模型預測結果、調試中間變量、與其他工具交換數據
典型輸出文件內容
1.00000000e+00 2.00000000e+00 3.00000000e+00
4.00000000e+00 5.00000000e+00 6.00000000e+00
7.00000000e+00 8.00000000e+00 9.00000000e+00

對比總結:

功能np.loadtxt()np.savetxt()
方向文件 → 內存(讀取)內存 → 文件(寫入)
核心用途加載結構化文本數據導出數組為文本文件
關鍵參數delimiter(解析分隔符)fmt(控制輸出格式)
數據類型限制僅支持數值型數據自動處理浮點數精度
典型場景數據分析前序步驟結果可視化/長期存檔

示例代碼:

# numpy.loadtxt():從文本文件中加載數據。這個函數假定文件中的每一行都有相同數量的值,并將這些值分隔開。
# 你可以使用 delimiter 參數指定分隔符,如逗號、制表符等。例如:系統的簡單介紹這段代碼的核心功能
data = np.loadtxt('文件讀取.txt', delimiter='\t')#csv格式的文件delimiter=','
print(data)#將數組保存到txt文件中
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 創建一個 NumPy 數組
np.savetxt('array.txt', array)# 使用 savetxt() 將數組保存到文本文件中

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93244.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93244.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93244.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

負載因子(Load Factor) :哈希表(Hash Table)中的一個關鍵性能指標

負載因子(Load Factor) 是哈希表(Hash Table)中的一個關鍵性能指標,用于衡量哈希表的空間利用率和發生哈希沖突的可能性。一:定義負載因子(通常用希臘字母 λ 表示)的計算公式為&…

監控插件SkyWalking(一)原理

一、介紹 1、簡介 SkyWalking 是一個 開源的 APM(Application Performance Monitoring,應用性能監控)和分布式追蹤系統,主要用于監控、追蹤、分析分布式系統中的調用鏈路、性能指標和日志。 它由 Apache 基金會托管,…

【接口自動化測試】---自動化框架pytest

目錄 1、用例運行規則 2、pytest命令參數 3、pytest配置文件 4、前后置 5、斷言 6、參數化---對函數的參數(重要) 7、fixture 7.1、基本用法 7.2、fixture嵌套: 7.3、請求多個fixture: 7.4、yield fixture 7.5、帶參數…

Flink Stream API 源碼走讀 - socketTextStream

概述 本文深入分析了 Flink 中 socketTextStream() 方法的源碼實現,從用戶API調用到最終返回 DataStream 的完整流程。 核心知識點 1. socketTextStream 方法重載鏈 // 用戶調用入口 env.socketTextStream("hostname", 9999)↓ 補充分隔符參數 env.socket…

待辦事項小程序開發

1. 項目規劃功能需求:添加待辦事項標記完成/未完成刪除待辦事項分類或標簽管理(可選)數據持久化(本地存儲)2. 實現功能添加待辦事項:監聽輸入框和按鈕事件,將輸入內容添加到列表。 標記完成/未完…

【C#】Region、Exclude的用法

在 C# 中,Region 和 Exclude 是與圖形編程相關的概念,通常在使用 System.Drawing 命名空間進行 GDI 繪圖時出現。它們主要用于定義和操作二維空間中的區域(幾何區域),常用于窗體裁剪、控件重繪、圖形繪制優化等場景。 …

機器學習 - Kaggle項目實踐(3)Digit Recognizer 手寫數字識別

Digit Recognizer | Kaggle 題面 Digit Recognizer-CNN | Kaggle 下面代碼的kaggle版本 使用CNN進行手寫數字識別 學習到了網絡搭建手法學習率退火數據增廣 提高訓練效果。 使用混淆矩陣 以及對分類出錯概率最大的例子單獨拎出來分析。 最終以99.546%正確率 排在 86/1035 …

新手如何高效運營亞馬遜跨境電商:從傳統SP廣告到DeepBI智能策略

"為什么我的廣告點擊量很高但訂單轉化率卻很低?""如何避免新品期廣告預算被大詞消耗殆盡?""為什么手動調整關鍵詞和出價總是慢市場半拍?""競品ASIN投放到底該怎么做才有效?""有沒有…

【論文閱讀 | CVPR 2024 | UniRGB-IR:通過適配器調優實現可見光-紅外語義任務的統一框架】

論文閱讀 | CVPR 2024 | UniRGB-IR:通過適配器調優實現可見光-紅外語義任務的統一框架?1&&2. 摘要&&引言3.方法3.1 整體架構3.2 多模態特征池3.3 補充特征注入器3.4 適配器調優范式4 實驗4.1 RGB-IR 目標檢測4.2 RGB-IR 語義分割4.3 RGB-IR 顯著目…

Hyperf 百度翻譯接口實現方案

保留 HTML/XML 標簽結構,僅翻譯文本內容,避免破壞富文本格式。采用「HTML 解析 → 文本提取 → 批量翻譯 → 回填」的流程。百度翻譯集成方案:富文本內容翻譯系統 HTML 解析 百度翻譯 API 集成 文件結構 app/ ├── Controller/ │ └──…

字節跳動 VeOmni 框架開源:統一多模態訓練效率飛躍!

資料來源:火山引擎-開發者社區 多模態時代的訓練痛點,終于有了“特效藥” 當大模型從單一語言向文本 圖像 視頻的多模態進化時,算法工程師們的訓練流程卻陷入了 “碎片化困境”: 當業務要同時迭代 DiT、LLM 與 VLM時&#xff0…

配置docker pull走http代理

之前寫了一篇自建Docker鏡像加速器服務的博客,需要用到境外服務器作為代理,但是一般可能沒有境外服務器,只有http代理,所以如果本地使用想走代理可以用以下方式 臨時生效(只對當前終端有效) 設置環境變量…

OpenAI 開源模型 gpt-oss 本地部署詳細教程

OpenAI 最近發布了其首個開源的開放權重模型gpt-oss,這在AI圈引起了巨大的轟動。對于廣大開發者和AI愛好者來說,這意味著我們終于可以在自己的機器上,完全本地化地運行和探索這款強大的模型了。 本教程將一步一步指導你如何在Windows和Linux…

力扣-5.最長回文子串

題目鏈接 5.最長回文子串 class Solution {public String longestPalindrome(String s) {boolean[][] dp new boolean[s.length()][s.length()];int maxLen 0;String str s.substring(0, 1);for (int i 0; i < s.length(); i) {dp[i][i] true;}for (int len 2; len …

Apache Ignite超時管理核心組件解析

這是一個非常關鍵且設計精巧的 定時任務與超時管理組件 —— GridTimeoutProcessor&#xff0c;它是 Apache Ignite 內核中負責 統一調度和處理所有異步超時事件的核心模塊。&#x1f3af; 一、核心職責統一管理所有需要“在某個時間點觸發”的任務或超時邏輯。它相當于 Ignite…

DAY 42 Grad-CAM與Hook函數

知識點回顧回調函數lambda函數hook函數的模塊鉤子和張量鉤子Grad-CAM的示例# 定義一個存儲梯度的列表 conv_gradients []# 定義反向鉤子函數 def backward_hook(module, grad_input, grad_output):# 模塊&#xff1a;當前應用鉤子的模塊# grad_input&#xff1a;模塊輸入的梯度…

基于 NVIDIA 生態的 Dynamo 風格分布式 LLM 推理架構

網羅開發&#xff08;小紅書、快手、視頻號同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

《吃透 C++ 類和對象(中):拷貝構造函數與賦值運算符重載深度解析》

&#x1f525;個人主頁&#xff1a;草莓熊Lotso &#x1f3ac;作者簡介&#xff1a;C研發方向學習者 &#x1f4d6;個人專欄&#xff1a; 《C語言》 《數據結構與算法》《C語言刷題集》《Leetcode刷題指南》 ??人生格言&#xff1a;生活是默默的堅持&#xff0c;毅力是永久的…

Python 環境隔離實戰:venv、virtualenv 與 conda 的差異與最佳實踐

那天把項目部署到測試環境&#xff0c;結果依賴沖突把服務拉崩了——本地能跑&#xff0c;線上不能跑。折騰半天才發現&#xff1a;我和同事用的不是同一套 site-packages&#xff0c;版本差異導致運行時異常。那一刻我徹底明白&#xff1a;虛擬環境不是可選項&#xff0c;它是…

[ 數據結構 ] 時間和空間復雜度

1.算法效率算法效率分析分為兩種 : ①時間效率, ②空間效率 時間效率即為 時間復雜度 , 時間復雜度主要衡量一個算法的運行速度空間效率即為 空間復雜度 , 空間復雜度主要衡量一個算法所需要的額外空間2.時間復雜度2.1 時間復雜度的概念定義 : 再計算機科學中 , 算法的時間復雜…