Konversi daftar ke larik untuk menggunakan fungsi ravel ()


109

Saya memiliki daftar dalam python dan saya ingin mengubahnya menjadi sebuah array untuk dapat menggunakan ravel()fungsi.


2
Tolong, coba jawab permintaan klarifikasi dan perbaiki pertanyaan Anda alih-alih memunculkan banyak pertanyaan yang tidak terlalu bagus. Akhirnya, baca baik-baik jawaban ini . Saya pikir ini memecahkan masalah besar Anda ...
jorgeca

Jawaban:


237

Penggunaan numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)

25
Sebenarnya, myarray = np.array(mylist)sudah cukup.
fgb

11
yah, karena lebih aman karena tidak akan menyalin array tetapi hanya mengembalikannya, jadi merupakan kebiasaan yang baik untuk menggunakannya kecuali jika ada yang pasti akan mendapatkan salinan data asli
EnricoGiampieri

1
@EnricoGiampieri, adil, tetapi tidakkah Anda perlu mengeluarkan susunan dari ini apa pun yang terjadi? Saya kira saya tidak mengikuti bagaimana Anda tidak akan mendapatkan perintah apa pun untuk menghasilkan objek array baru.
fgb

kedua perintah akan membuat array baru mulai dari daftar, itu sudah pasti, tetapi seringkali intinya adalah untuk mengubah input ke format tertentu untuk menerapkan metode tertentu, dan ini lebih mirip kasus OP. menggunakan asarray adalah kebiasaan yang baik kecuali seseorang yakin bahwa salinan baru diperlukan. hanya mengetik saja arraysudah cukup, tapi mengapa melewatkan kemungkinan untuk mendidik OP untuk suatu kebiasaan baik selama kita di sini?
EnricoGiampieri

Saya hanya ingin mengatakan bahwa @fgb mengusulkan solusi yang memadai. fungsi '.asarray' mengembalikan objek numpy sedangkan '.array mengembalikan Anda sebuah array secara langsung. Ngomong-ngomong, terima kasih untuk kalian berdua!
Adrian Grzywaczewski

7

buat larik int dan daftar

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)

apa kepanjangan dari "i"? dan apa yang seharusnya untuk str?
Dany Y

6

Saya ingin cara melakukan ini tanpa menggunakan modul tambahan. Pertama putar daftar menjadi string, lalu tambahkan ke array:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)

Tidak mungkin untuk mengedit kesalahan ketik: baris pertama harusdataset_list = ';'.join(input_list)
Alex Poca

2

Jika yang Anda inginkan hanyalah memanggil raveldaftar (bersarang, saya s'pose?), Anda dapat melakukannya secara langsung, numpyakan melakukan casting untuk Anda:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

Juga perlu disebutkan bahwa Anda tidak perlu melalui numpysama sekali .


-1

Gunakan kode berikut:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)

-13

jika variabel b memiliki daftar maka Anda dapat melakukan hal di bawah ini:

buat variabel baru "a" as: a=[] lalu tetapkan daftar ke "a" sebagai:a=b

sekarang "a" memiliki semua komponen list "b" dalam array.

jadi Anda telah berhasil mengubah daftar menjadi array.


8
Sebenarnya, tidak ... ini sepenuhnya salah. Yang Anda miliki hanyalah dua variabel yang menunjuk ke daftar yang sama, bukan array numpy.
Ajean
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.