Heim >Backend-Entwicklung >Python-Tutorial >Detaillierte Erläuterung des Vergleichs zwischen Listen- und NumPy.ndarry-Slicing in Python
In diesem Artikel werden hauptsächlich relevante Informationen vorgestellt, die den Unterschied zwischen Python-Listen- und NumPy.ndarry-Listen-Slicing nicht die Originaldaten zurückgeben, und Änderungen an den neuen Daten haben keine Auswirkungen auf die Originaldaten, während NumPy.ndarry Beim Slicing ist dies nicht der Fall. Freunde, die die Originaldaten zurückgeben müssen, finden unter
eine detaillierte Erklärung des Unterschieds zwischen Python-Listen- und NumPy.ndarry-Slices
Beispielcode :
# 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])
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Vergleichs zwischen Listen- und NumPy.ndarry-Slicing in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!