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 处理变量引用的方式。
添加回答
举报