Seite 1 von 1

Numpy Array: eine Spalte von float zu int konvertieren

Verfasst: Freitag 15. Juni 2018, 20:59
von Alois
Hallo Community,

in nachfolgendem Skript müssen in der ersten Spalte vom Array C (bzw. C.csv) ganze Zahlen stehen.
Die erste Spalte wird aber jeweils mit einer Nachkommastelle (".0") ausgegeben.
Wie kann ich diese Spalte als ganze Zahl (Integer) ausgeben?

Danke für Eure Unterstützung.

Viele Grüße
Alois

Code: Alles auswählen

# -*- coding: utf-8 -*-
"""
Created on Fri Jun 15 21:44:17 2018

@author: dodi
"""

import csv
import numpy as np

Pfad_Ziel = "/home/dodi/data/Eigene_Dateien/python/Skripte/Test_Zusammenfuehren_CSV/"

A = np.array([[1,0.1],
              [2,0.2]])
B = np.array([[3,0.3],
              [4,0.4]])
              
C = np.concatenate((A, B), axis =0)
with open (Pfad_Ziel+ "C","w") as Ziel:
        writer = csv.writer(Ziel)
        nrow = 0
        for row in C:  
            writer.writerow(C [nrow,:])            
            nrow +=1

Re: Numpy Array: eine Spalte von float zu int konvertieren

Verfasst: Freitag 15. Juni 2018, 21:49
von __blackjack__
@Alois: Numpy kennt auch sogenannte „record arrays“, aber normale Numpy-Arrays nutzen es ja gerade als Vorteil das jedes Element vom gleichen Typ ist und die gleiche Menge an Speicherplatz belegt.

Pfade setzt man mit `os.path.join()` zusammen und nicht mit ``+``.

Warum schreibst Du selbst eine Schleife statt die Funktionen aus `numpy` zu verwenden um CSV-Daten zu schreiben?

Die ``for``-Schleife hat eine Laufvariable `row` die Du gar nicht verwendest. Was denkst Du denn was das ist? Vergleich das mal mit Deinem `C[nrow,:]`-Wert.

Re: Numpy Array: eine Spalte von float zu int konvertieren

Verfasst: Sonntag 17. Juni 2018, 11:28
von MagBen
Mit numpy.savetxt
https://docs.scipy.org/doc/numpy-1.13.0 ... vetxt.html
kannst sehr bequem 2D-Arrays als Textdatei rausschreiben.
Wenn du den Parameter fmt (Format) richtig setzt, dann kommt auch eine CSV-Datei dabei heraus. Mit fmt kannst du auch die Formatierung für jede Spalte einzeln festlegen.

Re: Numpy Array: eine Spalte von float zu int konvertieren

Verfasst: Sonntag 17. Juni 2018, 18:53
von Alois
MagBen hat geschrieben: Sonntag 17. Juni 2018, 11:28 Mit numpy.savetxt
https://docs.scipy.org/doc/numpy-1.13.0 ... vetxt.html
kannst sehr bequem 2D-Arrays als Textdatei rausschreiben.
Wenn du den Parameter fmt (Format) richtig setzt, dann kommt auch eine CSV-Datei dabei heraus. Mit fmt kannst du auch die Formatierung für jede Spalte einzeln festlegen.
das Leben kann so einfach sein ;)

Code: Alles auswählen

np.savetxt (Pfad_Ziel + file ,Array, fmt=['%i','%f'], delimiter = ',')
Danke, perfekt... funktioniert.

Viele Grüße
Alois