Cet article présente principalement des informations pertinentes qui expliquent en détail la différence entre la liste Python et le découpage NumPy.ndarry. Le découpage de liste renvoie les données d'origine, et les modifications apportées aux nouvelles données n'affecteront pas les données d'origine, contrairement au découpage NumPy.ndarry. non. Les amis qui ont besoin de renvoyer les données originales peuvent se référer à
pour une explication détaillée de la différence entre la liste Python et les tranches NumPy.ndarry
Exemple de code :
# list 切片返回的是不原数据,对新数据的修改不会影响原数据 In [45]: list1 = [1, 2, 3, 4, 5] In [46]: list2 = list1[:3] In [47]: list2 Out[47]: [1, 2, 3] In [49]: list2[1] = 1999 # 原数据没变 In [50]: list1 Out[50]: [1, 2, 3, 4, 5] In [51]: list2 Out[51]: [1, 1999, 3] # 而 NumPy.ndarry 的切片返回的是原数据 In [52]: arr = np.array([1, 2, 3, 4, 5]) In [53]: arr Out[53]: array([1, 2, 3, 4, 5]) In [54]: arr1 = arr[:3] In [55]: arr1 Out[55]: array([1, 2, 3]) In [56]: arr1[0] = 989 In [57]: arr1 Out[57]: array([989, 2, 3]) # 修改了原数据 In [58]: arr Out[58]: array([989, 2, 3, 4, 5]) # 若希望得到原数据的副本, 可以用 copy() In [59]: arr2 = arr[:3].copy() In [60]: arr2 Out[60]: array([989, 2, 3]) In [61]: arr2[1] = 99282 In [62]: arr2 Out[62]: array([ 989, 99282, 3]) # 原数据没被修改 In [63]: arr Out[63]: array([989, 2, 3, 4, 5])
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!