python - array.copy() 与 numpy.copy(array) 之间的区别
问题描述
我只是在看下面的 numpy 信息图。
https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Numpy_Python_Cheat_Sheet.pdf
我想知道np.copy(a)
和之间是否有任何区别a.copy()
- 或者它们只是同一操作的同义词?
解决方案
如果a
是 a numpy.array
,结果将是相同的。但是 ifa
是别的东西,将根据其类型a.copy()
返回相同的类型或失败,并且总是返回。尝试,例如以下:a
np.copy(a)
numpy.array
import pandas as pd
for x in (list(range(3)), np.array(range(3)), pd.Series(range(3))):
print()
print(repr(x.copy()))
print(repr(np.copy(x)))
UPD:还有另一个区别。这两种方法都有一个附加order
参数,用于定义具有不同默认值的副本中的内存顺序。in np.copy
it is 'K'
,表示“使用尽可能接近原始的顺序”,in ndarray.copy
it is 'C'
(使用 C 顺序)。例如
x = np.array([[1,2,3],[4,5,6]], order='F')
for y in [x, np.copy(x), x.copy()]:
print(y.flags['C_CONTIGUOUS'], y.flags['F_CONTIGUOUS'])
将打印
False True
False True
True False
在这两种情况下,副本在数组数据本身被复制的意义上是深的,但在对象数组的情况下对象本身没有被复制的意义上是浅的。这可以证明
x = np.array([1, [1,2,3]])
y = x.copy()
z = np.copy(x)
y[1][1] = -2
z[1][2] = -3
print(x)
print(y)
print(z)
所有三个打印行都是
[1 list([1, -2, -3])]
推荐阅读
- php - 多维数组值与另一个索引数组值匹配,然后从 PHP 7 中的多维中删除值
- excel - VBA:如何处理由自动完成引起的多个输入的运行时错误 13
- android - Android RoomDatabase 获取 SupportSQLiteDatabase 异常
- pdf - 将 pdf 转换为 docx 而不更改 python3.x 中的字体大小、粗体等
- function - Powershell 函数可以处理多种输入类型吗?
- javascript - 函数调用似乎在另一个函数 JQuery 中不起作用
- python - Pandas - 将数据附加到特定列
- python-3.x - Sending COMMANDS and receiving respones(Reading) from RADWAG WTC 2000 Scale with Pyserial/Python3
- android - 如何分别在android和ios上本地运行flutter应用程序?
- mysql - How do I calculate the capacity factor of a company that uses trucks to do delivery in SQL