Umwandle ein numpy-Array von Listen in ein numpy-Array
Ich habe einige Daten, die als Numpy-Array mit @ gespeichert sidtype=object
, und ich möchte eine Spalte mit Listen extrahieren und in ein Numpy-Array konvertieren. Es scheint ein einfaches Problem zu sein, aber der einzige Weg, den ich gefunden habe, um es zu lösen, besteht darin, das Ganze in eine Liste von Listen und dann in ein numpy-Array umzugliedern. Ist das ein eher pythonischer Ansatz?
import numpy as np
arr = np.array([[1, ['a', 'b', 'c']], [2, ['a', 'b', 'c']]], dtype=object)
arr = arr[:, 1]
print(arr)
# [['a', 'b', 'c'] ['a', 'b', 'c']]
type(arr)
# numpy.ndarray
type(arr[0])
# list
arr.shape
# (2,)
Wiedergabe des Arrays alsdtype=str
wirft einValueError
, da versucht wird, jede Liste in eine Zeichenfolge zu konvertieren.
arr.astype(str)
# ValueError: setting an array element with a sequence
Es ist möglich, das gesamte Array als Liste von Listen neu zu erstellen und es dann als Numpy-Array umzuwandeln, aber dies scheint ein Umweg zu sein.
arr_2 = np.array(list(arr))
type(arr_2)
# numpy.ndarray
type(arr_2[0])
# numpy.ndarray
arr_2.shape
# (2, 3)
Gibt es einen besseren Weg, dies zu tun?