2016-11-28 4 views
0

In MATLAB, können ich einen Spaltenvektor von Zahlen und String in einer 3x1 Zelle kombinieren, um eine einzelne Zelle (C) von 3x3 Dimension zu erzeugen, wie untenVektoren und Zellen/Dataframe

C = 

8 'CNDA-ESP_SIMRAD_MDS_DGPS_2000_2001.xlsx' 415x3 double 

2 'CNDA-ESP_SIMRAD_MDS_DGPS_2006_2007.xlsx' 986x3 double 

2 'CNDA-ESP_SIMRAD_MDS_DGPS_2010_2011.xlsx' 704x3 double 

gezeigt Ist es möglich, Mach das in Python?

+0

Sie Objekt dtype Arrays verwenden können. – Divakar

+0

Wie implementiere ich @Divakar? –

+1

Initialisiere mit 'out = np.empty ((3), dtype = object)' und fange an, jedes Element einzeln zuzuweisen, wobei diese Elemente 'out [0] = [8' CNDA-ESP_SIMRAD_MDS_DGPS_2000_2001.xlsx '415x3 double wären ] ', und so weiter. – Divakar

Antwort

1

Lange bevor MATLAB Zellen hatte, hatte Python Listen. Sie sind 1d, können aber andere Listen enthalten. In der Tat ohne verschachtelte Listen numpy werden verwendet, um 'Matrizen' zu erstellen.

A numpy Arrays mit Objekt dtype enthalten Zeiger auf Objekte, so dass sie Listen ähneln. Sie können nicht an sie anhängen, wie Sie mit Listen können. Aber sie sind mehrdimensional wie normale Arrays. Je nach Perspektive sind das erweiterte Listen oder degradierte Listen.

eine Liste Constructing ist trival

alist = [array1, array2, array3, ...] 

ein Objektarray Constructing kann trickier sein. Wenn sich die Subarrays oder Objekte in Größe und Typ unterscheiden, ist es einfach - wickeln Sie die Listenversion einfach in np.array(alist, dtype=object).

Wenn die Subarrays jedoch alle die gleiche Form haben, erstellt np.array aus ihnen ein Array höherer Dimension. Der beste Weg ist es, ein "leeres" Array mit der richtigen Form zu erstellen und Werte zuzuweisen.

Ich habe diese Fragen auf besprochen:

Can I construct a numpy object zero-d array from its value in a single expression?

Es erwähne ich scipy.io.loadmat, die von Laden von MATLAB-Dateien geeignet ist. Sie könnten versuchen, Ihre Zellen in ein .mat zu schreiben und sie in Python zu laden. Dadurch erhalten Sie Ideen, wie diese Funktion versucht, Äquivalente zu erstellen.

Mehr zu Objekt-Arrays v Listen an:
Irregular Numpy matrix

Verwandte Themen