English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
operazioni di aggiunta e rimozione degli array, le funzioni più comuni sono le seguenti:
funzioni | elementi e descrizioni |
resize | ritorna un nuovo array con la forma specificata |
append | aggiungi valore alla fine dell'array |
insert | 沿指定轴将值插入到指定下标之前 |
delete | 删掉某个轴的子数组,并返回删除后的新数组 |
unique | 查找数组内的唯一元素 |
numpy.resize 函数返回指定大小的新数组。
如果新数组大小大于原始大小,则包含原始数组中的元素的副本。
numpy.resize(arr, shape)
Descrizione dei parametri:
arr:要修改大小的数组shape:返回数组的新形状
import numpy as np a = np.array([[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9, 10, 11]]) print('Il primo array: ') print (a) print (' ') print('第一个数组的形状:') print(a.shape) print (' ') b = np.resize(a, (4, 2)) print('第二个数组:') print(b) print (' ') print('第二个数组的形状:') print(b.shape) print (' ') # 要注意 a 的第一行在 b 中重复出现,因为尺寸变大了 print('修改第二个数组的大小:') b = np.resize(a, (5, 5)) print(b)
Il risultato dell'output è:
Primo array: [[ 1 2 3 4 5 6 7 8] [ 4 5 6 7 8 9 10 11]] 第一个数组的形状: (2, 8) 第二个数组: [[1 2] [3 4] [ 5 6 ] [ 7 8 ] 第二个数组的形状: (4, 2) 修改第二个数组的大小: [[ 1 2 3 4 5 ] [ 6 7 8 4 5 ] [ 6 7 8 9 10 ] [ 11 1 2 3 4 ] [ 5 6 7 8 4 ]
numpy.append 函数在数组的末尾添加值。追加操作会分配整个数组,并把原来的数组复制到新数组中。此外,输入数组的维度必须匹配否则将生成 ValueError。
append 函数返回的始终是一个一维数组。
numpy.append(arr, values, axis=None)
Descrizione dei parametri:
arr: array di inputvalues:要向 arr 添加的值,需要和 arr 形状相同(除了要添加的轴)axis:默认为 None。当 axis 无定义时,是横向加成,返回总是为一维数组!当 axis 有定义的时候,分别为 0 和 1 的时候。当 axis 有定义的时候,分别为 0 和 1 的时候(列数要相同)。当 axis 为 1 时,数组是加在右边(行数要相同)。
import numpy as np a = np.array([[1, 2, 3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9, 10, 11]]) print('Il primo array: ') print (a) print (' ') print('向数组添加元素:') print(np.append(a, [7, 8, 9])) print (' ') print('沿轴 0 添加元素:') print(np.append(a, [[1,2,3,4,5,6,7,8]], axis=0)) print (' ') print('along the axis 1: add element:') print(np.append(a, [[5,5,5,5,5,5,5],[7,8,9,7,8,9,1]], axis=1))
Il risultato dell'output è:
Primo array: [[ 1 2 3 4 5 6 7 8] [ 4 5 6 7 8 9 10 11]] add elements to the array: [ 1 2 3 4 5 6 7 8 4 5 6 7 8 9 10 11 7 8 9] along the axis 0: add element: [[ 1 2 3 4 5 6 7 8] [ 4 5 6 7 8 9 10 11] [ 1 2 3 4 5 6 7 8] along the axis 1: add element: [[ 1 2 3 4 5 6 7 8 5 5 5 5 5 5 5]] [ 4 5 6 7 8 9 10 11 7 8 9 7 8 9 1]]
The numpy.insert function inserts values before the given index along the given axis in the input array.
If the type of the value is converted to the type to be inserted, it is different from the input array. The insertion is not in place, the function will return a new array. In addition, if the axis is not provided, the input array will be expanded.
numpy.insert(arr, obj, values, axis)
Descrizione dei parametri:
arr: array di inputobj: the index before which the values are insertedvalues: the values to be insertedaxis: along the axis to insert, if not provided, the input array will be expanded
import numpy as np a = np.array([[1,2],[3,4],[5,6]]) print('Il primo array: ') print (a) print (' ') print('Non è stato passato il parametro Axis. L'array di input viene espanso prima dell'inserimento.') print(np.insert(a, 3, [11, 12])) print (' ') print('The Axis parameter was passed. It will broadcast the value array to match the input array.') print('along the axis 0: broadcast:') print(np.insert(a, 1, [11], axis=0)) print (' ') print('along the axis 1: broadcast:') print(np.insert(a, 1, 11, axis=1))
The output result is as follows:
Primo array: [[1 2] [3 4] [5 6]] Non è stato passato il parametro Axis. L'array di input viene espanso prima dell'inserimento. [ 1 2 3 11 12 4 5 6] The Axis parameter was passed. It will broadcast the value array to match the input array. along the axis 0: broadcast: [[ 1 2] [11 11] [ 3 4] [ 5 6]] along the axis 1: broadcast: [[ 1 11 2] [ 3 11 4] [ 5 11 6]]
La funzione numpy.delete restituisce un nuovo array senza la sottosottosegmentazione specificata dall'array di input. Come nel caso della funzione insert(), se non viene fornito il parametro axis, l'array di input viene espanso.
Numpy.delete(arr, obj, axis)
Descrizione dei parametri:
arr: array di inputobj: può essere tagliato, intero o array di interi, che indica la sottosottosegmentazione da rimuovere dall'array di inputaxis: lungo cui rimuovere la sottosottosegmentazione data, se non fornito, l'array di input viene espanso
import numpy as np a = np.arange(12).reshape(3,4) print('Il primo array: ') print (a) print (' ') print('Non è stato passato il parametro Axis. L'array di input viene espanso prima dell'inserimento.') print(np.delete(a, 5)) print (' ') print('Elimina la seconda colonna: ') print(np.delete(a, 1, axis=1)) print (' ') print('Slicing che contiene i valori sostitutivi rimossi dall'array: ') a = np.array([1,2,3,4,5,6,7,8,9,10]) print(np.delete(a, np.s_[::2]))
Il risultato dell'output è:
Primo array: [[0 1 2 3] [4 5 6 7] [8 9 10 11] Non è stato passato il parametro Axis. L'array di input viene espanso prima dell'inserimento. [0 1 2 3 4 6 7 8 9 10 11] Elimina la seconda colonna: [[0 2 3] [4 6 7] [8 10 11] Slicing che contiene i valori sostitutivi rimossi dall'array: [2 4 6 8 10]
La funzione numpy.unique viene utilizzata per rimuovere gli elementi duplicati dall'array.
numpy.unique(arr, return_index, return_inverse, return_counts)
arr: array di input, se non è un array unidimensionale verrà espansoreturn_index: se true, restituisce la posizione degli elementi della nuova lista nell'array originale (indice), e lo memorizza come listareturn_inverse: se true, restituisce la posizione degli elementi dell'array originale nella nuova lista (indice), e lo memorizza come listareturn_counts: se true, restituisce la frequenza degli elementi distinti nell'array originale
import numpy as np a = np.array([5,2,6,2,7,5,6,8,2,9]) print('Il primo array: ') print (a) print (' ') print('Il valore distincto del primo array: ') u = np.unique(a) print (u) print (' ') print ('Indici dell'array eliminato:') u,indices = np.unique(a,return_index=True) print (indices) print (' ') Possiamo vedere ciascun valore che corrisponde all'indice dell'array originale: print (a) print (' ') print ('Indici dell'array eliminato:') u,indices = np.unique(a,return_inverse=True) print (u) print (' ') print ('Indice:') print (indices) print (' ') print ('Ristruttura l'array originale utilizzando gli indici:') print (u[indices]) print (' ') print ('Restituisci il numero di ripetizioni degli elementi eliminati:') u,indices = np.unique(a,return_counts=True) print (u) print (indices)
Il risultato dell'output è:
Primo array: [5 2 6 2 7 5 6 8 2 9] Valore eliminato del primo array: [2 5 6 7 8 9] Indici dell'array eliminato: [1 0 2 4 7 9] Possiamo vedere ciascun valore che corrisponde all'indice dell'array originale: [5 2 6 2 7 5 6 8 2 9] Indici dell'array eliminato: [2 5 6 7 8 9] Indice: [1 0 2 0 3 1 2 4 0 5] Ristruttura l'array originale utilizzando gli indici: [5 2 6 2 7 5 6 8 2 9] Restituisci il numero di ripetizioni degli elementi eliminati: [2 5 6 7 8 9] [3 2 2 1 1 1]