Si të shtoni elementë në një grup në Python


Prezantimi

Python nuk ka një lloj të dhënash të integruar të grupit, megjithatë, ka module që mund t'i përdorni për të punuar me vargje. Ky artikull përshkruan se si të shtoni në një grup duke përdorur grupin dhe modulet NumPy. Moduli NumPy është i dobishëm kur ju duhet të bëni operacione matematikore në një grup.

Në shumë raste, mund të përdorni Lista për të krijuar vargje, sepse Lista ofron fleksibilitet, siç janë llojet e përziera të të dhënave, dhe ende ka të gjitha karakteristikat e një grupi. Mësoni më shumë rreth listave në Python.

Shënim: Mund të shtoni vetëm elementë të të njëjtit lloj të dhënash në një grup. Në mënyrë të ngjashme, ju mund të bashkoni vetëm dy grupe të të njëjtit lloj të dhënash.

Shtimi i elementeve në një grup duke përdorur modulin e grupit

Me modulin e grupit, mund të lidhni ose bashkoni vargje duke përdorur operatorin + dhe mund të shtoni elementë në një grup duke përdorur append(), extend( ) dhe metodat insert().

Syntax Description
+ operator, x + y Returns a new array with the elements from two arrays.
append(x) Adds a single element to the end of the array.
extend(iterable) Adds a list, array, or other iterable to the end of array.
insert(i, x) Inserts an element before the given index of the array.

Shembulli i mëposhtëm tregon se si të krijoni një objekt të ri të grupit duke bashkuar dy vargje:

import array

# create array objects, of type integer
arr1 = array.array('i', [1, 2, 3])
arr2 = array.array('i', [4, 5, 6])

# print the arrays
print("arr1 is:", arr1) 
print("arr2 is:", arr2)

# create a new array that contains all of the elements of both arrays 
# and print the result
arr3 = arr1 + arr2
print("After arr3 = arr1 + arr2, arr3 is:", arr3)

Prodhimi është:

Output
arr1 is: array('i', [1, 2, 3]) arr2 is: array('i', [4, 5, 6]) After arr3 = arr1 + arr2, arr3 is: array('i', [1, 2, 3, 4, 5, 6])

Shembulli i mëparshëm krijon një grup të ri që përmban të gjithë elementët e vargjeve të dhëna.

Shembulli i mëposhtëm tregon se si të shtoni në një grup duke përdorur metodat append(), extend() dhe insert():

import array

# create array objects, of type integer
arr1 = array.array('i', [1, 2, 3])
arr2 = array.array('i', [4, 5, 6])

# print the arrays
print("arr1 is:", arr1) 
print("arr2 is:", arr2)

# append an integer to an array and print the result
arr1.append(4)
print("\nAfter arr1.append(4), arr1 is:", arr1)

# extend an array by appending another array of the same type 
# and print the result
arr1.extend(arr2)
print("\nAfter arr1.extend(arr2), arr1 is:", arr1)

# insert an integer before index position 0 and print the result
arr1.insert(0, 10)
print("\nAfter arr1.insert(0, 10), arr1 is:", arr1)

Prodhimi është:

Output
arr1 is: array('i', [1, 2, 3]) arr2 is: array('i', [4, 5, 6]) After arr1.append(4), arr1 is: array('i', [1, 2, 3, 4]) After arr1.extend(arr2), arr1 is: array('i', [1, 2, 3, 4, 4, 5, 6]) After arr1.insert(0, 10), arr1 is: array('i', [10, 1, 2, 3, 4, 4, 5, 6])

Në shembullin e mëparshëm, secila metodë thirret në objektin e grupit arr1 dhe modifikon objektin origjinal.

Shtimi i elementeve në një grup NumPy

Me modulin NumPy, mund të përdorni funksionet NumPy append() dhe insert() për të shtuar elementë në një grup.

Syntax Description
numpy.append(arr, values, axis=None) Appends the values or array to the end of a copy of arr. If the axis is not provided, then default is None, which means both arr and values are flattened before the append operation.
numpy.insert(arr, obj, values, axis=None) Inserts the values or array before the index (obj) along the axis. If the axis is not provided, then the default is None, which means that only arr is flattened before the insert operation.

Funksioni numpy.append() përdor funksionin numpy.concatenate() në sfond. Ju mund të përdorni numpy.concatenate() për të bashkuar një sekuencë vargjesh përgjatë një boshti ekzistues. Mësoni më shumë rreth rutinave të manipulimit të grupeve në dokumentacionin NumPy.

Shënim: Duhet të instaloni NumPy për të testuar shembullin e kodit në këtë seksion.

Shembujt në këtë seksion përdorin vargje 2-dimensionale (2D) për të theksuar se si funksionet manipulojnë vargjet në varësi të vlerës së boshtit që jepni.

Shtimi në një varg duke përdorur numpy.append()

Vargjet NumPy mund të përshkruhen sipas dimensionit dhe formës. Kur shtoni vlera ose vargje në vargje shumëdimensionale, grupi ose vlerat që shtohen duhet të kenë të njëjtën formë, duke përjashtuar boshtin e dhënë.

Për të kuptuar formën e një grupi 2D, merrni parasysh rreshtat dhe kolonat. array([[1, 2], [3, 4]]) ka një formë 2, 2 ekuivalente me 2 rreshta dhe 2 kolona, ndërsa array( [[10, 20, 30], [40, 50, 60]]) ka një formë 2, 3 ekuivalente me 2 rreshta dhe 3 kolona.

Testoni këtë koncept duke përdorur konsolën interaktive Python.

Së pari, importoni modulin NumPy, më pas krijoni disa vargje dhe kontrolloni formën e tyre.

Importoni NumPy, më pas krijoni dhe printoni np_arr1:

  1. import numpy as np
  2. np_arr1 = np.array([[1, 2], [3, 4]])
  3. print(np_arr1)
Output
[[1 2] [3 4]]

Kontrolloni formën e np_arr1:

  1. np_arr1.shape
Output
(2, 2)

Krijo dhe printo një grup tjetër, np_arr2:

  1. np_arr2 = np.array([[10, 20, 30], [40, 50, 60]])
  2. print(np_arr2)
Output
[[10 20 30] [40 50 60]]

Kontrolloni formën e np_arr2:

  1. np_arr2.shape
Output
(2, 3)

Pastaj provoni të bashkëngjitni vargje përgjatë boshteve të ndryshme. Mund të shtosh një grup me formë 2, 3 në një grup me formë 2, 2 përgjatë boshtit 1, por jo përgjatë boshti 0.

Shtoni np_arr2 te np_arr1 përgjatë boshtit 0, ose sipas rreshtit:

  1. np.append(np_arr1, np_arr2, axis=0)

Ju merrni një ValueError:

Output
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<__array_function__ internals>", line 5, in append File "/Users/digitalocean/opt/anaconda3/lib/python3.9/site-packages/numpy/lib/function_base.py", line 4817, in append return concatenate((arr, values), axis=axis) File "<__array_function__ internals>", line 5, in concatenate ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 2 and the array at index 1 has size 3

Nuk mund të shtosh një grup me rreshta me gjerësi tre kolona në një grup me rreshta që janë vetëm dy kolona të gjera.

Shtoni np_arr2 te np_arr1 përgjatë boshtit 1, ose sipas kolonës:

  1. np.append(np_arr1, np_arr2, axis=1)

Prodhimi është:

Output
array([[ 1, 2, 10, 20, 30], [ 3, 4, 40, 50, 60]])

Ju mund të bashkëngjitni një grup me kolona që janë dy rreshta të larta në një grup tjetër me kolona që janë dy rreshta të larta.

Shembulli i mëposhtëm tregon se si të shtoni elementë në një grup NumPy duke përdorur funksionin numpy.append():

import numpy as np

# create 2D array objects (integers)
np_arr1 = np.array([[1, 2], [3, 4]])
np_arr2 = np.array([[10, 20], [30, 40]])

# print the arrays
print("np_arr1 is:\n", np_arr1)
print("np_arr2 is:\n", np_arr2)

# append an array to the end of another array and print the result
# both arrays are flattened before appending
append_axis_none = np.append(np_arr1, np_arr2, axis=None)
print("append_axis_none is:\n", append_axis_none)

# append an array to the end of another array along axis 0 (append rows)
# and print the result
append_axis_0 = np.append(np_arr1, np_arr2, axis=0)
print("append_axis_0 is:\n", append_axis_0)

# append an array to the end of another array along axis 1 (append columns)
# and print the result
append_axis_1 = np.append(np_arr1, np_arr2, axis=1)
print("append_axis_1 is:\n", append_axis_1)

Prodhimi është:

Output
np_arr1 is: [[1 2] [3 4]] np_arr2 is: [[10 20] [30 40]] append_axis_none is: [ 1 2 3 4 10 20 30 40] append_axis_0 is: [[ 1 2] [ 3 4] [10 20] [30 40]] append_axis_1 is: [[ 1 2 10 20] [ 3 4 30 40]]

Shembulli i mëparshëm tregon se si funksionon funksioni numpy.append() për çdo bosht të grupit 2D dhe si ndryshon forma e grupit që rezulton. Kur boshti është 0, grupi shtohet me rresht. Kur boshti është 1, grupi shtohet sipas kolonës.

Shtimi në një grup duke përdorur numpy.insert()

Funksioni numpy.insert() fut një grup ose vlera në një grup tjetër përpara indeksit të dhënë, përgjatë një boshti dhe kthen një grup të ri.

Ndryshe nga funksioni numpy.append(), nëse boshti nuk ofrohet ose specifikohet si Asnjë, funksioni numpy.insert() rrafshohet vetëm grupin e parë, dhe nuk i rrafshon vlerat ose grupin që do të futet. Do të merrni një ValueError nëse përpiqeni të futni një grup 2D në një grup 2D pa specifikuar një bosht.

Shembulli i mëposhtëm tregon se si të futni elementë në një grup duke përdorur funksionin numpy.insert():

import numpy as np

# create array objects (integers)
np_arr1 = np.array([[1, 2], [4, 5]])
np_arr2 = np.array([[10, 20], [30, 40]])
np_arr3 = np.array([100, 200, 300])

# print the arrays
print("np_arr1 is:\n", np_arr1)
print("np_arr2 is:\n", np_arr2)
print("np_arr3 is:\n", np_arr3)

# insert a 1D array into a 2D array and then print the result
# the original array is flattened before insertion
insert_axis_none = np.insert(np_arr1, 1, np_arr3, axis=None)
print("insert_axis_none is:\n", insert_axis_none)

# insert an array into another array by row
# and print the result
insert_axis_0 = np.insert(np_arr1, 1, np_arr2, axis=0)
print("insert_axis_0 is:\n", insert_axis_0)

# insert an array into another array by column
# and print the result
insert_axis_1 = np.insert(np_arr1, 1, np_arr2, axis=1)
print("insert_axis_1 is:\n", insert_axis_1)

Prodhimi është:

Output
np_arr1 is: [[1 2] [4 5]] np_arr2 is: [[10 20] [30 40]] insert_axis_none is: [ 1 100 200 300 2 4 5] insert_axis_0 is: [[ 1 2] [10 20] [30 40] [ 4 5]] insert_axis_1 is: [[ 1 10 30 2] [ 4 20 40 5]]

Në shembullin e mëparshëm, kur futët një grup 2D në një grup tjetër 2D përgjatë boshtit 1, çdo grup brenda np_arr2 u fut si një kolonë e veçantë në np_arr1. Nëse dëshironi të futni të gjithë grupin 2D në një grup tjetër 2D, përfshini kllapa katrore rreth vlerës së indeksit të parametrit obj për të treguar se i gjithë grupi duhet të futet përpara atij pozicioni. Pa kllapat katrore, numpy.insert() grumbullon vargjet në sekuencë si kolona përpara indeksit të dhënë.

Shembulli i mëposhtëm tregon daljen me dhe pa kllapa katrore rreth parametrit obj (index):

import numpy as np

# create 2D array objects (integers)
np_arr1 = np.array([[1, 2], [3, 4]])
np_arr2 = np.array([[10, 20], [30, 40]])

# print the arrays
print("np_arr1 is:\n", np_arr1)
print("np_arr2 is:\n", np_arr2)

# insert an array, column by column, into another array
# and print the result
insert_axis_1 = np.insert(np_arr1, 1, np_arr2, axis=1)
print("insert_axis_1 is:\n", insert_axis_1)

# insert a whole array into another array by column
# and print the result
insert_index_axis_1 = np.insert(np_arr1, [1], np_arr2, axis=1)
print("insert_index_axis_1 is:\n", insert_index_axis_1)

Prodhimi është:

Output
np_arr1 is: [[1 2] [3 4]] np_arr2 is: [[10 20] [30 40]] insert_axis_1 is: [[ 1 10 30 2] [ 3 20 40 4]] insert_index_axis_1 is: [[ 1 10 20 2] [ 3 30 40 4]]

Shembulli i mëparshëm tregon se si numpy.insert() fut kolonat në një grup në varësi të shënimit të indeksit.

konkluzioni

Në këtë artikull ju keni shtuar elementë në vargje duke përdorur modulet vargje dhe NumPy. Vazhdoni të mësoni me më shumë mësime Python.