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.

pengguna2229953
sumber
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)
A. Rodas
sumber
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)
Uszkai Attila
sumber
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)
D_C
sumber
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 .

Paul Panzer
sumber
-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)
Vinay
sumber
-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.

Mayank Sharma
sumber
8
Sebenarnya, tidak ... ini sepenuhnya salah. Yang Anda miliki hanyalah dua variabel yang menunjuk ke daftar yang sama, bukan array numpy.
Ajean