Lulus matriks untuk berfungsi python

Array 2D, array 3D dll. disebut array multidimensi. Array 2D berisi lebih dari 1 baris dan 1 kolom dan dapat diperlakukan sebagai kombinasi dari beberapa array 1D. Array 2D juga dianggap sebagai matriks. Misalnya, larik 2D dengan baris 'm' dan kolom 'n' disebut matriks m x n

Kita dapat membuat array multidimensi dengan cara berikut

  1. Menggunakan fungsi array()
  2. Menggunakan fungsi one() dan zeroes()
  3. Menggunakan fungsi mata()
  4. Menggunakan fungsi reshape()

Fungsi array()

Fungsi Numpy'sarray() dapat digunakan untuk membuat array multidimensi. Biasanya, kami meneruskan daftar elemen ke fungsi ini. Jika kita meneruskan satu daftar elemen ke fungsi ini, maka itu akan membuat larik 1D. Jika kita melewatkan dua daftar elemen, maka fungsi ini membuat larik 2D

a = larik([1,2,3,4])

a = larik([[1,2,3,4], [5,6,7,8]])

Menampilkan elemen array 2D

[[1 2 3 4]

[5 6 7 8]]

Meskipun elemen ditampilkan dalam 2 baris dan 4 kolom, memori internal yang dialokasikan untuk semua elemen ini akan berupa satu baris yang berisi 8 blok (2 x 4 = 8). Elemen disimpan di lokasi memori yang berdekatan seperti yang ditunjukkan di bawah ini

Python Multi-dimensional Arrays

Fungsi one() dan zeros()

Fungsi ones() berguna untuk membuat array 2D dengan beberapa baris dan kolom yang semua elemennya akan diambil sebagai 1. Format dari fungsi ini adalah

yang ((r, c), dtype)

Di sini, 'r' mewakili jumlah baris dan 'c' mewakili jumlah kolom. 'dtype' mewakili tipe data elemen dalam array. Sebagai contoh,

a = satuan((3, 4), float)

akan membuat array 2D dengan 3 baris dan 4 kolom dan tipe data diambil sebagai float. kita dapat melihat array sebagai

[[1. 1. 1. 1. ]

[1. 1. 1. 1. ]

[1. 1. 1. 1. ]]

Sama seperti fungsi ones() , kita juga dapat menggunakan fungsi zeros() untuk membuat array 2D dengan elemen yang diisi dengan nol

b = nol((3,4), int)

Kemudian array 2D dengan 2 baris dan 4 kolom akan dibuat di mana semua elemen akan menjadi 0, seperti yang ditunjukkan di bawah ini

[[0 0 0 0]

[0 0 0 0]

[0 0 0 0]]

Mata() Fungsi

Fungsi eye() membuat array 2D dan mengisi elemen diagonal dengan 1s. Format umum penggunaan fungsi ini adalah

mata(n, dtype=tipe data)

Ini akan membuat larik dengan baris 'n' dan kolom 'n'. Tipe data default adalah 'float'. Misalnya, eye(3) akan membuat larik 3x3 dan mengisi elemen diagonal dengan 1s seperti yang ditunjukkan di bawah ini

b = mata(3)

[[1. 0. 0. ]

[0. 1. 0. ]

[0. 0. 1. ]]

from numpy import * 
b =eye(4)
print(b)

Fungsi reshape()

Fungsi reshape() telah dibahas pada bagian sebelumnya. Kami akan memiliki diskusi yang rumit tentang fungsi ini sekarang. Fungsi ini berguna untuk mengubah larik 1D menjadi larik multidimensi (2D atau 3D). Sintaks penulisan fungsi ini adalah

bentuk ulang(namaarray, (n, r, c))

Di sini, 'arrayname' mewakili nama array yang elemennya akan dikonversi. 'n' menunjukkan jumlah larik dalam larik yang dihasilkan. 'r', 'c' masing-masing menunjukkan jumlah baris dan kolom. Sebagai contoh, kita mengambil array 1D 'a' dengan 6 elemen sebagai

a = larik([1, 2, 3, 4, 5, 6])

Untuk mengubah 'a' menjadi array 2D menggunakan fungsi reshape(), kita dapat menulis

b = bentuk ulang(a, (2, 3))

Kami mengubah elemen array 'a' menjadi array 2D dengan 2 baris dan 3 kolom, dan array yang dihasilkan adalah 'b'. Jadi, array 2D 'b' terlihat seperti ini

[[1 2 3]

[4 5 6]]

Amati dua pasang tanda kurung siku awal yang menunjukkan bahwa itu adalah larik 2D. Misalkan, kita menulis

b = bentuk ulang(a, (3, 2))

Ini akan mengubah 'a' menjadi larik 2D dengan 3 baris dan 2 kolom yang terlihat seperti ini

[[1 2]

[3 4]

[5 6]]

Dimungkinkan untuk menggunakan fungsi reshape() untuk mengubah larik 1D menjadi larik 3D. Mari kita ambil array 1D 'a' dengan 12 elemen sebagai

a = rentang(12)

[0 1 2 3 4 5 6 7 8 9 10 11]

Sekarang, untuk mengubah array 1D ini menjadi array 3D, kita dapat menggunakan fungsi reshape() sebagai

b = bentuk ulang(a, (2, 3, 2))

b = bentuk ulang(a, (2, 3, 2))

Di sini, 'a' mewakili nama larik yang sedang dikonversi. Pada fungsi reshape(), setelah 'a', amati angka (2, 3, 2). Mereka menyatakan bahwa kami menginginkan 2 array masing-masing dengan 3 baris dan 2 kolom. Jadi, array 3D 'b' yang dihasilkan terlihat seperti ini

Dalam tutorial ini, Anda akan belajar cara menggunakan NumPy untuk memetakan fungsi di atas array menggunakan metode yang berbeda seperti NumPy vectorize. Mampu menerapkan fungsi yang sama ke setiap elemen dalam array adalah keterampilan yang penting. Namun, karena larik NumPy seringkali cukup besar, kami perlu mempertimbangkan kinerja saat memetakan fungsi ke larik NumPy

Di akhir tutorial ini, Anda akan belajar

  • Cara menerapkan fungsi ke array satu dimensi dan dua dimensi NumPy
  • Cara menggunakan fungsi NumPy vectorize untuk memetakan fungsi di atas array
  • Cara menggunakan for loop dan daftar pemahaman untuk menerapkan fungsi ke setiap elemen dalam larik NumPy

Daftar isi

Apa Cara Terbaik untuk Memetakan Fungsi ke Array NumPy

Cara terbaik untuk memetakan fungsi ke array NumPy adalah dengan meneruskan array ke fungsi secara langsung. Ini bukan hanya cara yang paling sederhana, tetapi juga cara yang paling mudah dibaca. Metode ini berfungsi untuk array dengan dimensi apa pun

Mari selami cara kerja metode ini dengan terlebih dahulu menjelajahi cara memetakan fungsi ke larik satu dimensi di bagian selanjutnya

Petakan Fungsi ke Array NumPy Satu Dimensi

Cara termudah untuk memetakan fungsi ke array satu dimensi adalah dengan melewatkan array ke dalam fungsi. Fungsi ini dapat berupa fungsi bawaan, fungsi yang ditentukan pengguna, atau fungsi lambda anonim

Mari kita lihat membuat fungsi yang ditentukan pengguna yang mengkuadratkan angka. Kami kemudian dapat meneruskan array NumPy ke fungsi itu untuk melihat apa yang terjadi

# Applying a User-Defined Function to NumPy Arrays
import numpy as np

def square(num):
    return num ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
_

Mari uraikan apa yang kita lakukan pada kode di atas

  1. Kami mengimpor NumPy menggunakan alias np
  2. Kami kemudian mendefinisikan sebuah fungsi, square(), yang mengambil satu angka sebagai inputnya dan mengembalikan kuadrat dari angka itu
  3. Kami kemudian membuat array, arr_, menggunakan fungsi NumPy arange() yang menyimpan angka dari 0 hingga 10
  4. Kami kemudian meneruskan array itu ke dalam fungsi kami dan menugaskannya kembali ke array kami

Mirip dengan contoh di atas, kita dapat menggunakan fungsi lambda anonim untuk memetakan array fungsi. Mari kita lihat bagaimana kita dapat membuat ulang fungsi kita sebagai fungsi lambda sederhana

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]

Kode dalam contoh di atas berperilaku serupa dengan menggunakan fungsi yang ditentukan pengguna. Namun, kami menggunakan fungsi lambda sebagai gantinya. Sekarang setelah Anda mengetahui cara memetakan fungsi ke array NumPy satu dimensi, mari kita lihat bagaimana kita dapat melakukan ini untuk array dua dimensi

Petakan Fungsi ke Array NumPy Dua Dimensi

Menerapkan fungsi ke setiap elemen dalam larik NumPy dua dimensi bekerja dengan cara yang sama seperti larik satu dimensi. Kami cukup meneruskan array ke dalam fungsi dan memetakan setiap elemen menggunakan fungsi itu. Mari kita lihat cara kerjanya

# Applying a Lambda Function to 2-D NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(10).reshape(2, 5)
arr = square(arr)

print(arr)

# Returns: 
# [[ 0  1  4  9 16]
#  [25 36 49 64 81]]

Kita dapat melihat dari blok kode di atas bahwa fungsi diterapkan ke setiap elemen dalam array. Pendekatan ini cukup Pythonic dan memungkinkan kita untuk sangat berhati-hati dengan kode kita

Cara Menggunakan NumPy vectorize untuk Memetakan Fungsi ke Array

Fungsi NumPy

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
0 adalah fungsi kemudahan yang disediakan oleh NumPy untuk membuat fungsi yang dapat diterapkan ke array NumPy. Fungsi mengubah fungsi lain untuk menerapkannya array NumPy

Perlu dicatat, bahwa fungsi tersebut tidak dirancang untuk kinerja. Itu hanya mengulang setiap elemen dalam array dan memproses item. Karena itu, ini bukan pendekatan yang paling direkomendasikan. Mari kita lihat bagaimana kita dapat memvektorisasi fungsi kita sebelumnya dan menerapkannya ke setiap elemen dalam sebuah array

# Using NumPy vectorize() to Map a Function to an Array
import numpy as np

square = lambda x: x ** 2
vectorized_square = np.vectorize(square)

arr = np.arange(11)
arr = vectorized_square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]

Intinya, ini tidak berbuat banyak melebihi contoh kita sebelumnya. Ini benar-benar menambah langkah pemrosesan data kami dan dapat menyebabkan beberapa perilaku tak terduga dengan fungsi yang lebih kompleks

Cara Menggunakan Peta Python untuk Memetakan Fungsi ke Array NumPy

Python hadir dengan fungsi bawaan untuk memetakan fungsi ke item yang dapat diubah,

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
1. Fungsi ini memungkinkan Anda untuk dengan mudah menerapkan fungsi ke setiap elemen dalam iterable tanpa perlu menulis perulangan for secara eksplisit. Mari kita lihat bagaimana kita bisa menggunakan fungsi untuk menerapkan fungsi ke setiap elemen dalam array

# Using Python map() to Map a Function to a NumPy Array
import numpy as np

arr = np.arange(11)
square = lambda x: x ** 2
mapped = np.array(list(map(square, arr)))
print(mapped)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]

Di blok kode di atas, kami membuat sebuah array dan fungsi lambda. Kami kemudian melewatkan fungsi dan larik masing-masing ke dalam fungsi Python map(). Karena fungsi

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
_1 mengembalikan objek peta, kita perlu mengubahnya kembali menjadi larik NumPy menggunakan konstruktor
# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
3

Cara Menggunakan For Loops untuk Memetakan Fungsi ke Array NumPy

Di bagian ini, Anda akan mempelajari cara menggunakan loop for Python untuk memetakan fungsi ke setiap item dalam array NumPy. Metode ini secara eksplisit melakukan apa yang dilakukan fungsi NumPy vectorize dan mungkin lebih jelas untuk dibaca oleh pembaca kode Anda

Mari kita lihat bagaimana kita bisa melakukan ini

# Using a For Loop to Map a Function to a NumPy Array
import numpy as np

arr = np.arange(11)
square = lambda x: x ** 2

for idx in range(len(arr)):
    arr[idx] = square(arr[idx])

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]

Di blok kode di atas, pertama-tama kita membuat array dan fungsi yang ingin kita terapkan. Kami kemudian mengulang setiap elemen dalam array dan menambahkannya ke array baru. Kami memanipulasi setiap elemen dalam array dengan mengakses nilai array secara langsung di loop for. Kami menetapkan nilai ke nilai yang dipetakan yang dikembalikan oleh fungsi kami

Kita dapat menyederhanakan kode ini dengan menggunakan pemahaman daftar, seperti yang akan Anda pelajari di bagian berikut

Cara Menggunakan Pemahaman Daftar untuk Memetakan Fungsi ke Array NumPy

Kita dapat menyederhanakan metode di atas dengan menggunakan pemahaman daftar untuk menggantikan perulangan for kita. Kita dapat menggunakan pemahaman daftar untuk membuat daftar nilai baru di mana setiap item dipetakan ke suatu fungsi. Untuk mengubahnya kembali menjadi larik NumPy, kita perlu meneruskannya ke fungsi konstruktor

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
3

# Using a List Comprehension to Map a Function to a NumPy Array
import numpy as np

arr = np.arange(11)
square = lambda x: x ** 2

arr = np.array([square(val) for val in arr])

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]

Mari uraikan apa yang kita lakukan di blok kode di atas

  1. Kami membuat larik kami, arr
  2. Kami mendeklarasikan fungsi lambda kami ke nilai kuadrat
  3. Kami kemudian menggunakan pemahaman daftar untuk mengulangi setiap item dalam larik dan menerapkan fungsi ke setiap item
  4. Kami kemudian meneruskan daftar ke fungsi
    # Applying a Lambda Function to NumPy Arrays
    import numpy as np
    
    square = lambda x: x ** 2
    
    arr = np.arange(11)
    arr = square(arr)
    
    print(arr)
    
    # Returns: [  0   1   4   9  16  25  36  49  64  81 100]
    3 untuk mengembalikan array NumPy

Kesimpulan

Dalam panduan ini, Anda mempelajari cara memetakan fungsi ke larik NumPy. Anda pertama kali mempelajari cara melewatkan array ke dalam fungsi, baik untuk array satu dimensi maupun dua dimensi. Kemudian, Anda belajar cara menggunakan fungsi NumPy

# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
0 untuk mengubah fungsi lain menjadi fungsi vektor. Dari sana, Anda belajar cara menggunakan fungsi Python
# Applying a Lambda Function to NumPy Arrays
import numpy as np

square = lambda x: x ** 2

arr = np.arange(11)
arr = square(arr)

print(arr)

# Returns: [  0   1   4   9  16  25  36  49  64  81 100]
1, untuk loop dan pemahaman daftar untuk memetakan fungsi ke array NumPy

Bagaimana Anda meneruskan array ke suatu fungsi dengan Python?

Kita perlu mengimpor array, dan setelah itu, kita akan membuat array dengan tipe data dan elemennya, lalu kita akan meneruskannya ke fungsi untuk mengulang elemen di . .

Bagaimana Anda meneruskan array 2d ke suatu fungsi di Python?

from array import * # import all package related to the array. arr1 = [[1, 2, 3, 4], [8, 9, 10, 12]] # menginisialisasi elemen array. print(arr1) # mencetak elemen arr1. # Gunakan fungsi insert() untuk menyisipkan elemen yang berisi dua parameter .

Bisakah Anda meneruskan daftar ke suatu fungsi dengan Python?

Anda dapat mengirim tipe data apa pun dari argumen ke suatu fungsi (string, angka, daftar, kamus, dll. ), dan akan diperlakukan sebagai tipe data yang sama di dalam fungsi.

Bagaimana Anda meneruskan daftar sebagai argumen dalam skrip Python?

Bekerja dengan baris perintah. Pertimbangkan kode di bawah ini yang ditulis dalam cmdlis. py. impor sistem. print("nama programnya adalah ", sys. argumen[ 0 ]).
Memanggil daftar menggunakan baris perintah. impor sistem. print("nama programnya adalah ", sys. argumen[ 0 ]).
Bekerja dengan daftar yang dipanggil oleh baris perintah. sys