Yakagadziriswa: compute mutsauko wezvose zvakasanganiswa zve 2 arrays

Munyika yanhasi, kushandura data uye kuongororwa kwakakosha pakugadzirisa matambudziko akasiyana uye kuita sarudzo. Python, iri imwe yemitauro inonyanya kushandiswa pakuronga, inopa maraibhurari akasiyana siyana uye mabasa ekurerutsa mabasa aya. Rimwe dambudziko rakadaro kuverenga mutsauko pakati pemisanganiswa yese inobvira yezvikamu zviviri. Ichi chinyorwa chinopa nzwisiso yakadzama yemafambisirwo edambudziko iri, nhanho-ne-nhanho mhinduro, uye kujekesa pamusoro pemaraibhurari nemabasa anobatanidzwa. Isu tichaongorora zvakare mune zvine chekuita misoro kuti tinzwisise maitiro ekugadzirisa matambudziko zviri nani.

Kuti tiverenge mutsauko kune ese masanganiswa ezvirongwa zviviri, isu tichashandisa iyo itertools raibhurari, kunyanya iyo chigadzirwa basa, rinobatsira mukugadzira zvigadzirwa zveCartesian zvekupinza iterables. Uyezve, isu tichashandisa numpy, raibhurari ine mukurumbira yesainzi komputa, kufambisa mabasa akasiyana.

Dambudziko Solution

Tichatanga nekupinza kunze maraibhurari anodiwa, tichitanga mitsara miviri, tobva tashandisa itertools.product() basa kuti tione misanganiswa yose inobvira pakati pezvinhu zvearrays. Tevere, isu tichaverenga mutsauko uripo pakati pemisanganiswa iyi uye tochengeta mhedzisiro mune rondedzero.

import itertools
import numpy as np

array1 = np.array([1, 2, 3])
array2 = np.array([3, 4, 5])

combinations = list(itertools.product(array1, array2))
differences = [abs(combination[0] - combination[1]) for combination in combinations]

Tsanangudzo-nhanho-nhanho yeCode

Ngationgororei chikamu chimwe nechimwe chekodhi zvakadzama kuti tinzwisise kuti inoverengera sei misiyano yekusanganiswa kwese:

1. Chekutanga, tinopinza kunze maraibhurari anodiwa - itertools uye numpy:

import itertools
import numpy as np

2. Isu tinogadzira maviri numpy arrays ane zvinotevera zvinhu:

array1 = np.array([1, 2, 3])
array2 = np.array([3, 4, 5])

3. Isu tinoshandisa itertools.product () basa kuti tiwane zvese zvinogoneka musanganiswa pakati pezvinhu zveese ari maviri arrays:

combinations = list(itertools.product(array1, array2))

Iyo inobuda ichave rondedzero yematuples ane misanganiswa sezvinotevera:

[(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 3), (3, 4), ( 3, 5)]

4. Chekupedzisira, tinodzokorora rondedzero yemisanganiswa toverenga musiyano wakakwana pakati pembiri yega yega yezvinhu, tichichengeta zvabuda murunyoro rwunonzi "misiyano":

differences = [abs(combination[0] - combination[1]) for combination in combinations]

Runyorwa rwemisiyano inozobuda ichava:

[2, 3, 4, 1, 2, 3, 0, 1, 2]

Itertools Library

  • Itertools raibhurari imodule ine simba muPython Standard Library iyo inopa muunganidzwa wekukurumidza, ndangariro-inoshanda maturusi ekushanda nevanoita.
  • Inopa akasiyana mabasa, akadai sechigadzirwa, mvumo, musanganiswa, izvo zvinogona kuburitsa akasiyana marudzi ezvirongwa zve iterator.
  • Aya mabasa anogona kubatsira kugadzirisa matambudziko akaomarara zvakanyanya uye kugadzirisa mashandiro ekodhi yako.

Numpy Library

  • Numpy inzvimbo yakakurumbira yakavhurika-sosi raibhurari yesainzi komputa muPython.
  • Inopa maturusi akasiyana siyana ekushanda nearrays, linear algebra, Fourier shanduko, nezvimwe.
  • Inogonesa kukurumidza kuverengera nhamba uye inorerutsa mashandiro akarongeka, zvichiita kuti ive yekuenda-kune sarudzo yekugadzirisa data uye kuongorora mabasa muPython.

Parizvino, iwe unofanirwa kuve nekunzwisisa kwakajeka kwemaitiro ekuenzanisa mutsauko wezvese zvinogoneka musanganiswa wezvirongwa zviviri uchishandisa Python, kunyanya iyo itertools uye numpy maraibhurari. Iyo modular nzira yekupwanya matambudziko akaoma kuita matanho akareruka uchishandisa ehunyanzvi maraibhurari uye mabasa kwete chete anobatsira mukunzwisisa kwakadzama kwedambudziko asiwo inowedzera kushanda kwekodhi.

Related posts:

Leave a Comment