如何在Python中复制一个Numpy数组?

828 阅读3分钟

在这篇文章中,我们将学习如何在Python中复制一个numpy数组。数组经常被从一个复制到另一个。Numpy有许多复制数组的方法。一个NumPy数组可以被复制到另一个NumPy数组。在创建新数组后,原数组的内容被复制到新数组中。有很多方法可以将一个Numpy数组复制到另一个数组。我们将在这篇文章中看一下三种基本的方法。

什么是Python中的Numpy数组?

Numerical Python被缩写为NumPy。很多时候,列表被用来表示Python中的数组。但是,它的处理速度很慢。NumPy数组是一个强大的N维数组对象,在线性代数、傅里叶变换和随机数中都有应用。

Numpy数组可以是一维的也可以是多维的。Numpy数组创建数组对象的时间仅为创建Python列表的一小部分。

Numpy数组的应用

Python中的NumPy数组可用于整合C、C++和其他语言。它在线性代数、随机数生成和其他领域也很有用。NumPy数组也可以用来在一个多维容器中存储通用数据。现在,让我们看看Python中的NumPy数组是什么。

单维的Numpy数组

import numpy as np
list = [233,900,888]
n=np.array(list)
print(n)


输出

[233 900 888]

多维Numpy数组

arr=np.array ([(1, 2, 3), (2, 4, 5)]
print(arr)

输出

[1,2,3]
[2,4,5]

如何在Python中复制一个Numpy数组?

现在让我们来看看在Python中轻松复制Numpy数组的不同方法。

方法1:使用np.copy()函数

第一种方法是使用np.copy()函数。

语法

numpy.copy(a, order='K', subok=False)

这个函数将返回给定对象的数组的副本

# import Numpy package
import numpy as np
  
# Create a numpy array using np.array()
org_array = np.array([1,22,66,99,100,101])
  
print("Original array: ")
  
# print the Numpy array
print(org_array)
  
# Now copy the org_array to copy_array by using np.copy() function
copy_array = np.copy(org_array)
  
print("\nCopied array: ")
  
# print the copied Numpy array
print(copy_array)

输出

Original array: 
[  1  22  66  99 100 101]

Copied array: 
[  1  22  66  99 100 101]

方法2:使用np.empty_like()函数

这个函数将返回一个与给定数组特征相同的新数组。

语法:

numpy.empty_like(a, dtype = None, order = ‘K’, subok = True)

让我们看一下下面的例子。

#import necessary packages
import numpy as np
  
# Create a numpy array using np.array()
ary = np.array([23,45,66,109,88,117])
  
print("Original array: ")
  
# print the Numpy array
print(ary)
  
# Create an empty Numpy array similar to the previous array
copy_ary = np.empty_like(ary)
  
# Assign previous array to copy
copy_ary[:] = ary
  
print("\nCopy of the given array: ")
  
# print the copied array
print(copy_ary)

输出:

Original array: 
[ 23  45  66 109  88 117]

Copy of the given array: 
[ 23  45  66 109  88 117]

方法3:使用赋值运算符

让我们使用赋值运算符来复制一个numpy数组。这是一个更简单的方法,不需要使用任何额外的方法!

# import Numpy package
import numpy as np
  
# Create a 2-D Numpy array using np.array()
org_array = np.array([[66, 22, 31],
                      [49, 78, 66]])
  
# Copy org_array to copy_array use Assignment operator
copy_array = org_array
  
# modify org_array
org_array[1, 1] = 1
  
# check if copy_array has remained the same
  
# print original array
print('Original Array: \n', org_array)
  
# print copied array
print('\nCopied Array: \n', copy_array)

输出

Original Array: 
 [[66 22 31]
 [49  1 66]]

Copied Array: 
 [[66 22 31]
 [49  1 66]]

因此,在这个方法中,新数组只是引用了原始数组。

总结

在这篇文章中,我们讨论了将一个numpy数组复制到另一个数组的三种常见方法。可能还有其他的方法和黑客,但这三种方法应该可以帮助你轻松地处理数组复制的问题