3 回答

TA貢獻1799條經驗 獲得超9個贊
您需要將copy=True
作為參數添加到to_numpy()
.
根據DataFrame.to_numpy
文檔:
副本:bool,默認為 False
是否確保返回值不是另一個數組的視圖。請注意,這
copy=False
并不能確保不to_numpy()
復制。相反,copy=True
即使不是絕對必要,也要確保制作副本。
換句話說,寫入D = Distance_df.to_numpy()
可能會導致D
成為對底層 numpy 數組的引用Distance_df
,而不是復制它們。
寫入D = Distance_df.to_numpy(copy=True)
以確保D
和Distance_df
是獨立的對象。

TA貢獻1836條經驗 獲得超5個贊
嘗試獲取不被更改的數據框副本
import pandas as pd
import numpy as np
url="https://raw.githubusercontent.com/PawinData/UC/SFBA/DistanceMatrix_shortestnetworks.csv"
Distance_df = pd.read_csv(url, index_col=0)
df=Distance_df.copy()
D = df.to_numpy()

TA貢獻1812條經驗 獲得超5個贊
D = Distance_df.to_numpy()
現在運行D is Distance_df返回True。兩個變量都引用同一個對象。
但是,如果您這樣做D = Distance_df.copy().to_numpy(),D is Distance_df將會返回False。它們現在是不同的對象。
這正是 Python 處理變量引用的方式。
添加回答
舉報