Kongsi petua dan contoh fungsi numpy untuk meningkatkan kecekapan kerja

王林
Lepaskan: 2024-01-26 09:38:06
asal
526 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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))
Salin selepas log masuk

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]
Salin selepas log masuk

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]
Salin selepas log masuk

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]
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan