如何从现有的Numpy数组创建Numpy数组

2024-09-26 22:11:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个现有的numpy数组,并从现有数组创建一个新的数组,但是在开始和结束时从现有数组中的值创建一个新数组?在

例如:

arr = np.array([1,2,3,4,5,6,7,8,9,10])

def split(array):
    # I am only interested in 4 thru 8 in original array
    return new_array

>>>new_array
>>> array([4,5,6,7,8])

Tags: innumpyonlynewreturndefnp数组
2条回答

您需要对数组进行切片和复制。首先,@AniMenon提到的切片可以通过殖民索引来实现。在

接下来,您可以选择使用builtin.copy()或导入copy并使用复制。复制(). 在

不管怎样,这都是避免以后意外互连的重要步骤。在

只要这样做:

arr1=arr[x:y]

在哪里

x->开始索引

y->;结束索引

示例:

^{pr2}$

在上面的例子中,我们使用赋值,Python中的赋值语句不复制对象,它们在目标和对象之间创建绑定。在

您可以使用.copy()来做一个浅拷贝。

一个浅拷贝构造一个新的复合对象,然后(尽可能地)在其中插入对原始对象的引用。在

>>> arr1=arr[3:8].copy()
>>> arr1
array([4, 5, 6, 7, 8])

您可以使用deepcopy()进行深度复制。

一个深拷贝构造一个新的复合对象,然后递归地将在原始对象中找到的对象的副本插入其中。在

>>> arr2 = deepcopy(arr[3:8])
>>> lst2
array([4, 5, 6, 7, 8])

进一步参考:

copy — Shallow and deep copy operations

Shallow and Deep Copy

相关问题 更多 >

    热门问题