Tukar numpy kepada senarai: Petua untuk meningkatkan kecekapan pemprosesan data

WBOY
Lepaskan: 2024-01-19 10:11:16
asal
892 orang telah melayarinya

Tukar numpy kepada senarai: Petua untuk meningkatkan kecekapan pemprosesan data

Dalam pemprosesan data, selalunya perlu menukar tatasusunan numpy kepada senarai. Tatasusunan Numpy ialah struktur data yang sangat berkuasa, tetapi kadangkala anda perlu menggunakan senarai untuk operasi selanjutnya. Pada masa yang sama, terdapat juga beberapa operasi yang memerlukan penukaran antara tatasusunan numpy dan senarai. Dalam artikel ini, kami akan memperkenalkan kaedah menukar tatasusunan numpy kepada senarai dan memberikan contoh kod khusus.

1 Gunakan kaedah tolist()

Kaedah tolist() disediakan dalam numpy, yang hanya boleh menukar numpy kepada senarai. Berikut ialah contoh:

import numpy as np

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

print(a_list)
Salin selepas log masuk

Hasil keluaran: Kaedah

[[1, 2, 3], [4, 5, 6]]
Salin selepas log masuk

tolist() adalah sangat mudah, tetapi agak tidak cekap. Jika anda perlu mengendalikan tatasusunan yang lebih besar, kaedah tolist() boleh menjadi sangat perlahan.

2. Gunakan kaedah cache

Jika anda ingin meningkatkan kecekapan semasa memproses tatasusunan numpy yang besar, anda boleh menggunakan kaedah cache. Iaitu, tambah elemen dalam numpy ke senarai satu demi satu. Berikut ialah contoh:

import numpy as np

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

# np.ndarray.flat 属性将返回一个迭代器,遍历数组中的所有元素
a_list = [item for item in a.flat]

print(a_list)
Salin selepas log masuk

Hasil keluaran:

[1, 2, 3, 4, 5, 6]
Salin selepas log masuk
Salin selepas log masuk

Menggunakan kaedah ini, anda boleh mengelakkan penukaran yang kerap antara numpy dan senarai, meningkatkan kecekapan.

3. Gunakan kaedah bentuk semula

Kaedah bentuk semula boleh membentuk semula tatasusunan numpy ke dalam bentuk seperti senarai, dan senarai boleh dikembangkan dengan kaedah rata. Berikut ialah contoh:

import numpy as np

a = np.array([[1,2,3], [4,5,6]])
a_reshape = a.reshape(-1)
a_list = a_reshape.tolist()

print(a_list)
Salin selepas log masuk

Hasil keluaran:

[1, 2, 3, 4, 5, 6]
Salin selepas log masuk
Salin selepas log masuk

Kaedah bentuk semula boleh mengubah tatasusunan menjadi tatasusunan satu dimensi, dan kemudian gunakan kaedah tolist() untuk menukarnya menjadi senarai.

4 Gunakan kaedah list()

Menggunakan kaedah list() boleh terus menukar tatasusunan numpy kepada senarai, tetapi anda perlu memberi perhatian kepada dimensi tatasusunan. Kaedah ini hanya berfungsi jika dimensi ialah 1.

import numpy as np

a = np.array([1,2,3])
a_list = list(a)

print(a_list)
Salin selepas log masuk

Hasil keluaran:

[1, 2, 3]
Salin selepas log masuk

Jika dimensi tatasusunan bukan 1, anda perlu menggunakan kaedah lain.

Ringkasan

Di atas ialah beberapa kaedah untuk menukar tatasusunan numpy kepada senarai, antaranya kaedah tolist() ialah kaedah yang paling biasa, tetapi kecekapannya agak rendah. Apabila berurusan dengan tatasusunan besar, menggunakan kaedah cache dan kaedah bentuk semula boleh meningkatkan kecekapan. Kita perlu memilih kaedah yang paling sesuai mengikut keperluan kita sendiri.

Lampirkan kod lengkap:

import numpy as np

# tolist()方法
a = np.array([[1,2,3], [4,5,6]])
a_list = a.tolist()
print(a_list)

# 缓存方法
a = np.array([[1,2,3], [4,5,6]])
a_list = [item for item in a.flat]
print(a_list)

# reshape方法
a = np.array([[1,2,3], [4,5,6]])
a_reshape = a.reshape(-1)
a_list = a_reshape.tolist()
print(a_list)

# list()方法
a = np.array([1,2,3])
a_list = list(a)
print(a_list)
Salin selepas log masuk

Hasil keluaran:

[[1, 2, 3], [4, 5, 6]]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6]
[1, 2, 3]
Salin selepas log masuk

Atas ialah kandungan terperinci Tukar numpy kepada senarai: Petua untuk meningkatkan kecekapan pemprosesan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!