Ravel () işlevini kullanmak için diziye dönüştürme listesi


109

Python'da bir listem var ve ravel()işlevi kullanabilmek için onu bir diziye dönüştürmek istiyorum .


2
Lütfen pek çok iyi olmayan soru ortaya çıkarmak yerine açıklama taleplerini yanıtlamaya ve sorularınızı iyileştirmeye çalışın. Son olarak, bu cevabı dikkatlice okuyun . Sanırım büyük probleminizi çözüyor ...
jorgeca

Yanıtlar:


237

Kullanım numpy.asarray:

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

25
Aslında myarray = np.array(mylist)yeterli olmalı.
fgb

11
peki, dizileri kopyalamayacağı ve basitçe geri göndereceği için daha güvenli olduğunu açıklayın, bu yüzden orijinal verilerin bir kopyasını çıkaracağından emin olmadığınız sürece onu kullanmak iyi bir alışkanlıktır
EnricoGiampieri

1
@EnricoGiampieri, adil, ama ne olursa olsun bundan bir dizi almanız gerekmez mi? Sanırım, yeni bir dizi nesnesi oluşturmak için her iki komutu da nasıl elde edemeyeceğinizi takip etmiyorum.
fgb

her iki komut da bir listeden başlayarak yeni bir dizi oluşturacaktır, bu kesin, ancak çoğu zaman önemli olan, belirli bir yöntemi uygulamak için bir girdiyi belirli bir formata dönüştürmektir ve bu, OP'nin durumuna daha çok benziyor. yeni bir kopyanın gerekli olduğundan emin olmadıkça sıralı dizinin kullanılması iyi bir alışkanlıktır. sadece yazmak arrayyeterli, ama neden biz buradayken OP'yi iyi bir alışkanlık haline getirme olasılığını kaçıralım?
EnricoGiampieri

@Fgb'nin yeterli bir çözüm önerdiğini söylemek istedim. '.asarray' işlevi bir numpy nesnesi döndürürken, '.array size doğrudan bir dizi döndürür. Her neyse, ikinize de teşekkürler!
Adrian Grzywaczewski

7

int dizisi ve liste oluştur

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)

"i" ne anlama geliyor? ve str için ne olmalı?
Dany Y

6

Fazladan bir modül kullanmadan bunu yapmanın bir yolunu istedim. Önce listeyi dizeye çevirin, ardından bir diziye ekleyin:

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

Bir yazım hatasını düzenlemek mümkün değil: ilk satır şöyle olmalıdırdataset_list = ';'.join(input_list)
Alex Poca

2

İstediğiniz tek şey ravel(iç içe geçmiş, hedefliyorum?) Listenizi aramaksa, bunu doğrudan yapabilirsiniz, sizin numpyiçin döküm yapacaktır:

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

Ayrıca söz değer olduğunu size geçmesi gerekmez numpyhiç .


-1

Aşağıdaki kodu kullanın:

import numpy as np

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

-13

b değişkeninin bir listesi varsa, o zaman basitçe aşağıdakileri yapabilirsiniz:

olarak yeni bir "a" değişkeni oluşturun: a=[] ardından listeyi "a" öğesine şu şekilde atayın:a=b

artık "a", dizideki "b" listesinin tüm bileşenlerine sahiptir.

böylece listeyi başarıyla diziye dönüştürdünüz.


8
Aslında, hayır ... bu tamamen yanlış. Sahip olacağınız tek şey, aynı listeyi işaret eden iki değişken, uyuşuk bir dizi değil.
Ajean
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.