我希望获取现有的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])
答案 0 :(得分:1)
这样做:
arr1=arr[x:y]
其中,
x - >开始索引
y - >结束指数
示例:
>>> import numpy as np
>>> arr = np.array([1,2,3,4,5,6,7,8,9,10])
>>> arr
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> arr1=arr[3:8]
>>> arr1
array([4, 5, 6, 7, 8])
在上面的例子中,我们使用赋值,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])
进一步参考:
答案 1 :(得分:0)
您需要切片并复制数组。首先,@ AniMenon提到的切片可以通过定殖索引实现。
接下来,您可以选择使用内置.copy()或导入副本并使用copy.copy()。
无论哪种方式,这都是以后避免意外互连的重要一步。