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ë:
Outputarr1 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ë:
Outputarr1 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
:
- import numpy as np
- np_arr1 = np.array([[1, 2], [3, 4]])
- print(np_arr1)
Output[[1 2]
[3 4]]
Kontrolloni formën e np_arr1
:
- np_arr1.shape
Output(2, 2)
Krijo dhe printo një grup tjetër, np_arr2
:
- np_arr2 = np.array([[10, 20, 30], [40, 50, 60]])
- print(np_arr2)
Output[[10 20 30]
[40 50 60]]
Kontrolloni formën e np_arr2
:
- 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:
- np.append(np_arr1, np_arr2, axis=0)
Ju merrni një ValueError
:
OutputTraceback (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:
- np.append(np_arr1, np_arr2, axis=1)
Prodhimi është:
Outputarray([[ 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ë:
Outputnp_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ë:
Outputnp_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ë:
Outputnp_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.