Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja

Kongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja

王林
王林asal
2024-01-26 09:38:06517semak imbas

Kongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja

Berkongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja

Pengenalan:
Dalam bidang pemprosesan data dan pengkomputeran saintifik, adalah perkara biasa untuk menggunakan perpustakaan numpy Python. Numpy menyediakan satu siri fungsi dan alatan berkuasa yang boleh melaksanakan operasi dan pengiraan data berskala besar dengan mudah. Artikel ini akan memperkenalkan beberapa teknik fungsi numpy untuk meningkatkan kecekapan kerja dan menyediakan contoh kod khusus.

1. Operasi vektorisasi
Operasi vektorisasi Numpy ialah salah satu fungsinya yang paling berkuasa. Melalui operasi vektorisasi, anda boleh mengelak daripada menggunakan gelung untuk beroperasi pada setiap elemen, sekali gus meningkatkan kelajuan operasi dengan ketara.

Contoh kod 1: Kira jumlah baris dan lajur matriks

import numpy as np

m = np.random.rand(1000, 1000)

# 使用for循环
row_sum = np.zeros(1000)
col_sum = np.zeros(1000)
for i in range(1000):
    for j in range(1000):
        row_sum[i] += m[i][j]
        col_sum[j] += m[i][j]

# 使用矢量化操作
row_sum = np.sum(m, axis=1)
col_sum = np.sum(m, axis=0)

Contoh kod 2: Kira purata wajaran dua tatasusunan

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
weights = np.array([0.2, 0.3, 0.5])

# 使用for循环
result = 0
for i in range(3):
    result += a[i] * b[i] * weights[i]

# 使用矢量化操作
result = np.dot(np.multiply(a, b), weights)

2. Siaran
Penyiaran ialah fungsi dalam numpy yang membenarkan tatasusunan dimensi berbeza kepada menjadi Pengiraan masa menjadi sangat mudah. Dengan penyiaran, kami hanya boleh beroperasi pada tatasusunan tanpa padanan dimensi yang jelas.

Contoh kod 3: Kira ralat min kuasa dua tatasusunan

import numpy as np

a = np.array([1, 2, 3])
mean = np.mean(a)
var = np.sqrt(np.mean((a - mean) ** 2))

Contoh kod 4: Tolak min baris yang sepadan daripada setiap baris matriks

import numpy as np

m = np.random.rand(1000, 1000)
mean = np.mean(m, axis=1)
m -= mean[:, np.newaxis]

3 Kemahiran menghiris dan mengindeks
Numpy memberikan banyak slicing dan kemahiran pengindeksan, yang boleh memintas dan menapis tatasusunan dengan mudah.

Contoh kod 5: Ekstrak secara rawak beberapa elemen daripada tatasusunan

import numpy as np

a = np.arange(100)
np.random.shuffle(a)
selected = a[:10]

Sampel kod 6: Penapis elemen dalam tatasusunan yang memenuhi syarat

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])
selected = a[a > 3]

4 Fungsi am dan fungsi agregat
Numpy menyediakan sejumlah besar fungsi dan agregat. fungsi, yang boleh melakukan pelbagai operasi matematik dan statistik pada tatasusunan dengan mudah.

Sampel kod 7: Ambil nilai mutlak elemen tatasusunan

import numpy as np

a = np.array([-1, -2, -3, 4, 5, 6])
abs_a = np.abs(a)

Sampel kod 8: Kira jumlah, purata dan nilai maksimum tatasusunan

import numpy as np

a = np.array([1, 2, 3, 4, 5, 6])
sum_a = np.sum(a)
mean_a = np.mean(a)
max_a = np.max(a)

Ringkasan:
Artikel ini memperkenalkan beberapa teknik fungsi numpy untuk menambah baik kerja kecekapan dan menyediakan contoh kod khusus. Melalui operasi vektorisasi, teknik penyiaran, penghirisan dan pengindeksan, dan penggunaan fungsi umum dan agregat, kami boleh menggunakan numpy dengan lebih cekap dalam pemprosesan data dan pengkomputeran saintifik. Saya harap artikel ini akan membantu kerja semua orang!

Atas ialah kandungan terperinci Kongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn