kleine Mathe-Spielereien

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

25.7.2025
Mein Gehör ist schlecht, meint meine Frau.
Beim HNO-Arzt wartet man stundenlang auf einen Hörtest.
Jetzt habe ich mir selbst einen gebastelt:
Je höher der Ton, den war wahrnehmen kann , umso besser ist das Gehör.
Genau das macht auch der Hörtest beim Arzt.
Gute Zeit OSWALD

Code: Alles auswählen


import winsound
import time
from numpy import * 

frequenz = 300  # Frequenz des Tons in Hz
dauer = 1        # Dauer des Tons in Millisekunden

#while True:
#    winsound.Beep(frequenz, dauer)
#    time.sleep(0.1)  # kurze Pause, um CPU-Auslastung zu reduzieren
for x in range(1, 100, 3) :
      winsound.Beep(frequenz  + 10*x  , dauer  + 5* x) 
      time.sleep(0.1)  





OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

26..7.2025
Hier eine Erweiterung des Tests als Beispiel
Die Lautstärke ist natürlich auch während des Tests variabel.
Gute Zeit OSWALD

Code: Alles auswählen


import winsound
import time
from numpy import * 

frequenz = 300  # Frequenz des Tons in Hz
dauer = 1        # Dauer des Tons in Millisekunden

#while True:
#    winsound.Beep(frequenz, dauer)
#    time.sleep(0.1)  # kurze Pause, um CPU-Auslastung zu reduzieren
for x in range(1, 100, 3) :
      winsound.Beep(frequenz  + 30*x  - 12*x  , dauer  + 20* x )
      time.sleep(0.1)  



Benutzeravatar
__blackjack__
User
Beiträge: 14079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

`frequenz` und `dauer` stehen gar nicht für `frequenz` und `dauer`, sondern für `anfangsfequenz` und `anfangsdauer` oder so ähnlich. Das sich der Zusätzliche Wert aus *zwei* Komponenten zusammensetzt, macht das IMHO auch nicht einfacher lesbar.

Code: Alles auswählen

import time
import winsound

ANFANGDSFREQUENZ = 300  # in Hz
ANFANGSDAUER = 1  # in Millisekunden

def main():
    for x in range(33):
        winsound.Beep(ANFANGSDAUER + 54 * x + 18, ANFANGSDAUER + 60 * x + 1)
        time.sleep(0.1)

if __name__ == "__main__":
    main()
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

2.8.2025
In letzter Zeit habe ich mich näher mit CSV-Dateien beschäftigt
und auch in etwa verstanden.
Es ist sehr einfach eine kleine CSV-Datei zu erstellen, bei
großen Datenmengen aber ist das fast unmöglich oder auch viel zu aufwendig,
mit Zahlen aber geht das einfach , l mit Matrizen.
Icht stelle Programm 1 vor: Hier eine 10*10 Matrix mit 'Bild' erzeugt
und diese Matrix unmittelbar mit Programm 2 zur CSV-Datei transformiert.
Auf 'alle Dateien' kann die neue CSV-Datei gelesen werden.
Ich arbeite mit t' libre Office ' und auf dieser wird die CSVDatei angezeigt.
Mit Text-Dateien geht alls nicht so einfach

Gute Zeit OSWALD

Code: Alles auswählen


##  Mit zwei Farbbalken alle Farbpletten (2) darstellen
import matplotlib.pyplot as plt 
import numpy as np 
from numpy.ma import masked_array 
  
# Bild ereugen  mit   N  x M  oder             N x N    Numpy-array 

######################################
#img = np.random.randint(-200, 200, (12, 12)) 
img = np.random.randint(-10,10 ,(10,10))
#img = np.random.randint(-100.,100. ,(30,20))                    
#######################################
# Matrix darstellen   
print(img)
# masked array to positive and negative values 
neg_img = masked_array(img, img >= 0) 
pos_img = masked_array(img, img < 0) 
  
# make plot 
fig, ax = plt.subplots() 
  
# show image 
shw1 = ax.imshow(neg_img, cmap=plt.cm.Reds) 
shw2 = ax.imshow(pos_img, cmap=plt.cm.Greens)                       # swinter) 
  
# make color-bars 
bar1 = plt.colorbar(shw1) 
bar2 = plt.colorbar(shw2) 
  
# show plot with labels 
plt.xlabel('X Label') 
plt.ylabel('Y Label') 
bar1.set_label('ColorBar 1') 
bar2.set_label('ColorBar 2') 
plt.show()

#################################################

mport csv

data =  [[  255  , 241  ,   254  , 234  , 255 ,   255,  256 ,   1,     1  ,  255],
[    1 ,    2  ,   3  ,   4   ,  5  ,  6    , 7 ,    8  ,   9,    10],
[    1  ,   3  ,   6   , 10   , 15  ,  21  ,  28  ,  36   , 45   , 55],
[    1  ,   4 ,   10  ,  20 ,   35 ,   56  ,  84   ,120  , 165 ,  22],
[    1 ,    5   , 15 ,   35  ,  70  , 126 ,  210  , 33 ,  49  , 71],
[    1 ,    6  ,  21 ,   56  , 126,   252 ,  162  , 79 , 128,  20],
[    1  ,   7 ,   28 ,   84 ,  21 ,  46 ,  92 , 171 , 300 , 50],
[    1  ,   8  ,  36  , 120  , 33 ,  79 , 171 , 343 , 64,114],
[    1 ,    9   , 45  , 165  , 45 , 128 , 30 , 64 ,128 ,243],
[    1,    10 ,   55 ,  220   ,71 , 200   , 50  ,114 ,242, 248]] 
 

# Dateipfad und Name
file_path = 'aus_ matrix_3erstellen.csv'

# Datei öffnen und schreiben
with open(file_path, 'w', newline='', encoding='utf-8') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data)
    print(data)
print(f"Die CSV-Datei '{file_path}' wurde erfolgreich erstellt und geschrieben.")



OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

2.8.20245
Mit diesen wenigen Zeilen beliebig große Matrizen aus Zufallswerten erzeugen und
diese in obiges Programm 2 einsetzen.
Inwieweit das dann in der Praxis sinnvoll verwendet werden kann sei dahingestellt.
Mit Pandas lassen sich womöglich matrizen-ähnliche Objekte in Textform formatieren.
Das und vieles Andere wäre noch zu untersuchen. ?????

Code: Alles auswählen

import torch
import csv
matrix = torch.randn(10,10)
print(matrix) 


OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

3.8.25
Erstellung von CSV-Dateien für Strings
Es ist wichtig , alle Manipulationen im gleichen Ordner vorzunehmen.
Hier ein erstes Beispiel
OSWALD

Code: Alles auswählen


#Eine neue CSV-Datei erstellen
import csv

# Daten, die in die CSV-Datei geschrieben werden sollen
daten = [ 
    ['Name', 'Alter', 'Stadt','Beruf','Gehalt'],
    ['Anna', 30, 'München','Technologin',3500],
    ['Max', 25, 'Augsburg','Physiker',4500],
    ['Karl', 25, 'Ingolstadt','Internist ' ,6000],
    [ 'Ralf',21,'Rosenheim','Redakteur',3000],
    [ 'Horst',21,'Rosenheim','Scientist',5300],
    [ 'Robert',22,'Nuernberg','Lehrer',3500],
    [ 'Hanna',27,'Bamberg','Lehrerin',3600]
]

# Dateipfad
dateipfad = ' Test.csv '
 
# Datei öffnen und schreiben
with open(dateipfad, 'w', newline='', encoding='utf-8') as csvfile:
    schreiber = csv.writer(csvfile)

#print(f"Die CSV-Datei '{dateipfad}' wurde erfolgreich erstellt.")
print(daten)



Benutzeravatar
__blackjack__
User
Beiträge: 14079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Oh ja, Dateinamen mit führenden und abschliessenden Leerzeichen — das gefällt mir! 🤪
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

4.88.25
CSV-Dateien sollten stets gut gesichert sein,
Eine CSV-Datei (Comma Separated Valu-s) ist eine einfache Textdatei,
die zum Speichern von tabellarischen Daten verwendet wird.
Wichtig ist, dass die Werte innerhalb einer Zeile durch ein Trennzeichen
(meist ein Komma, aber auch Semikolon) voneinander getrennt sind.
dafür sorgt, dass diese in den gewonnenen Matrizen mit Kommata versehen werden.
Und - es sollte auch mit größeren Datenmengen umgehen können ,
Ein solches Programm incl. Anwendung stelle ich hier vor.
OSWA D

Code: Alles auswählen


import torch
 
max = +100    # Stellen vor dem Komma
min =  - 100
#create tensor with random values in range (min, max)
rand_tensor = (max-min)*torch.rand((200, 5)) + min             #Zeilen , Breite     der Matrix
#print tensor
print(rand_tensor)

###########################
#DATENALSLISTEvonSTRINGS erstellen


import csv

# Daten als Liste von Strings definieren

       
daten  =  [[ 1.9076,  4.9431,  4.2682, -1.7551, -2.9451],
        [ 3.8058,  1.1403,  1.3145, -0.1483,  1.1046],
        [ 2.7989, -3.6833,  3.0629,  4.6992, -3.6592],
        [ 4.0691,  2.7379, -2.5465,  4.3426, -2.8635],
        [-1.8825, -2.7705,  4.7366, -2.1835,  0.9186],
        [-0.9469, -1.9575, -0.8097,  4.6014, -1.7091],
        [ 3.7309,  4.5392, -1.9148, -1.0549, -2.8322],
        [ 3.9206, -2.8172,  1.8098,  1.9092, -0.7633],
        [-0.9648, -2.1586,  2.4470, -0.6911,  2.1273],
        [-0.0288, -1.3734, -2.0719, -1.9520,  4.8763],
        [ 2.4965, -0.2492, -0.4142, -3.2465,  3.3432],
        [-0.3810, -3.3033, -0.6500,  4.1360, -1.5581],
        [ 1.7897, -2.2144, -4.8531,  4.7325, -0.3983],
        [ 1.7542, -0.6745, -4.2525,  3.8019,  3.4376],
        [ 1.1966,  1.3787, -1.0994, -0.4073, -1.9930],
        [ 1.3996, -4.8279,  1.0473,  0.4376,  3.3436],
        [ 1.0871, -0.5549,  4.6822,  4.3765, -2.4046],
        [ 3.1256, -0.6247, -0.6332,  3.8774,  4.9433],
        [-1.5155,  1.7281, -4.4274, -3.7279,  4.1838],
        [-3.1593,  0.6062, -3.4319,  1.4951,  4.4496],
        [ 3.1291, -1.9154,  3.6415, -0.3911, -1.6326],
        [ 0.8623, -1.6268, -4.1607, -4.1304,  4.3819],
        [ 0.9468,  0.4063,  2.0143, -3.6136, -2.8232],
        [-4.0084,  2.1569, -0.8127,  4.8968, -2.9535],
        [ 3.8349,  3.1999, -3.2419,  4.3238, -0.4032],
        [ 4.0379, -3.4441,  4.5083, -3.4165, -1.4714],
        [ 4.6868,  4.6850, -4.5079,  1.0252, -3.9373],
        [-0.5215, -2.3950,  0.0919, -0.5404,  0.9853],
        [-2.7502, -2.7017, -3.3594,  1.7156, -4.8136],
        [-3.7389, -4.7867, -0.1428, -0.5798, -4.9514],
        [ 2.5577, -3.8280,  3.3106,  0.8603, -0.9775],
        [ 2.9082,  1.1254, -0.2458, -0.7285,  3.7978],
        [ 3.0636,  2.5098, -1.4736, -0.8586, -1.1885],
        [-4.2493,  4.5712, -3.1356,  2.4622, -4.0948],
        [ 4.1751, -1.5244, -3.8694,  1.9995,  4.7696],
        [-3.0679, -4.8282, -2.9636, -0.3906,  1.5927],
        [-1.1056, -1.7865, -3.1011, -2.5604,  3.1757],
        [ 0.6927, -2.8588,  2.2166,  2.2360, -4.3600],
        [ 1.2726,  1.4435,  3.1200,  1.3777, -2.3294],
        [ 4.7054, -2.7829,  4.6220, -4.9052,  4.4808],
        [ 0.4313, -1.3892, -2.7961, -4.4850, -4.2729],
        [ 3.9425, -1.3018,  3.9461,  4.2486, -1.9396],
        [ 4.6472, -2.1213,  0.0408,  0.8125,  1.3394],
        [-3.8060,  4.8333, -1.4873,  1.0969, -4.5335],
        [-0.2428,  2.2917,  1.0870, -2.3390, -4.5577],
        [ 4.9733, -2.1065,  2.2772, -0.5950,  0.4286],
        [-2.9394, -2.8171, -4.4938, -1.7466,  0.5963],
        [ 3.7271,  3.6498, -1.9518, -3.2158,  1.9463],
        [ 1.3799, -2.4646,  0.7341,  1.9124, -2.9107],
        [-1.5172,  1.3287, -1.3717, -0.9242, -0.7148],
        [ 2.3746,  1.6479,  3.9609,  4.4555, -0.3388],
        [-1.4230,  2.9968,  3.4523, -2.7762,  4.0290],
        [-1.1558, -0.0235,  0.4109, -0.1331, -3.2846],
        [ 1.1834, -0.7361,  1.9534,  2.9243, -3.3741],
        [-1.2181,  2.4678,  4.4405, -2.3413, -1.0612],
        [ 1.7496, -2.2606,  1.4426,  4.0689, -1.4501],
        [ 1.0921, -2.3077,  1.9746,  4.3174,  3.5768],
        [-1.4163,  0.4856,  0.9875,  1.1750,  1.3852],
        [-0.4130,  2.4934,  4.8209,  1.9916,  0.7941],
        [ 4.8287, -2.1593,  3.4179,  2.1469, -1.4684],
        [ 1.0499, -2.9726, -3.7596,  1.6357, -0.5629],
        [-2.1888,  3.0691, -3.4527, -2.8533, -3.6672],
        [ 0.6737, -1.5280, -1.6498, -3.4263, -2.7711],
        [ 2.4243, -2.5216,  1.0485,  4.1053,  4.3640],
        [ 2.9082,  4.7195,  4.1724, -2.2944, -4.2193],
        [-1.9808,  2.5594,  2.6069,  3.9265,  4.6056],
        [-1.7884,  1.8791, -1.1191,  3.1882, -0.3437],
        [-2.5979, -3.4906, -0.9270, -3.8194,  1.5982],
        [ 3.4918, -4.9520,  2.1543, -3.6970, -2.8558],
        [-1.0400,  1.5554,  3.5546,  2.5877,  1.9286],
        [-1.0218,  4.2523,  2.3935,  3.2247, -1.3222],
        [ 4.4449,  0.4607, -4.8254,  1.4724, -4.5032],
        [-2.2471,  2.1446, -0.8604, -1.2113, -0.4716],
        [ 2.1463, -4.3196,  1.4557, -3.7682,  0.6553],
        [-4.4545, -1.9244, -1.6983,  2.9376, -4.1654],
        [-2.2407,  1.5929,  4.3512, -3.4935, -3.0441],
        [ 0.7016, -4.9246, -1.9592,  2.8993, -4.9410],
        [ 4.5409, -3.8234,  1.0659,  0.2874,  2.1887],
        [ 0.8849, -2.1333, -4.1521, -0.2488,  2.3416],
        [ 3.1698, -3.6520, -4.4438, -1.3804,  1.8228],
        [ 0.2969,  3.1843, -2.9640,  3.4385,  1.9312],
        [ 2.2923,  4.7678, -1.2125, -1.2636, -2.8500],
        [ 3.4728, -4.0826,  4.1418,  3.0057, -3.2169],
        [-1.9800,  3.7696,  3.5986, -4.4288, -0.4752],
        [-3.2370, -3.2649,  4.3037, -3.8269, -3.7075],
        [ 1.1110,  0.4607, -1.1170,  4.2436, -3.9716],
        [-1.6618,  3.2097, -4.9092, -1.1897, -0.8680],
        [ 1.8439,  1.8184,  4.4980,  1.7837, -2.4148],
        [ 2.8915,  4.9289,  1.7337,  4.4813, -3.0453],
        [ 3.4136, -4.0586, -1.8142,  2.5389,  4.8770],
        [ 2.7349,  1.5952, -4.4736, -0.2490,  1.4570],
        [-1.1699,  2.8397,  0.4805, -1.4023,  4.7696],
        [ 1.7122,  4.1569, -3.9817, -4.5565, -4.2358],
        [ 1.4338,  4.4338,  3.0971, -2.1806, -0.0498],
        [ 2.9088,  4.8965,  3.6554, -2.8076,  0.6801],
        [ 0.0454, -4.4391,  4.9458,  0.5392, -1.5189],
        [-1.7972, -1.6587, -0.0922,  0.6490, -1.0083],
        [ 0.9491, -3.7044, -0.1621, -4.5325,  2.4892],
        [ 0.6696, -1.2423,  0.9579, -4.3994,  4.1213],
        [ 0.2087,  2.3707,  1.7553,  4.3475,  4.0107],
        [-1.4965, -0.7922,  2.1086,  3.5867,  2.2290],
        [-2.7068, -3.7498,  0.9527, -0.0279, -2.1550],
        [-2.1144,  3.1540,  0.8537,  1.6124,  0.5738],
        [-2.7681,  2.1194, -1.8956, -0.8899,  3.1698],
        [ 4.6950, -0.0142,  3.4894,  4.8953, -1.3099],
        [-3.3194, -1.3640, -3.8729, -1.5419, -1.0908],
        [ 0.2460,  1.7425,  3.1840, -1.1959,  4.0755],
        [-4.2937, -1.9132, -0.1511,  4.0852,  0.5882],
        [ 2.8764, -0.8185, -0.0832, -3.7002, -1.7529],
        [ 0.1980,  1.6936, -3.4732, -1.5984, -2.7399],
        [ 2.2820, -0.1788, -0.4257,  1.0211, -1.2715],
        [-2.7255, -0.6129,  2.4154, -2.2370,  1.8232],
        [ 1.5697, -4.5474,  0.9771, -0.2651, -2.8830],
        [-1.9378, -4.5873, -2.2087, -0.7764, -4.8894],
        [-0.1082, -0.4204, -2.8584, -3.9813, -1.6088],
        [-3.1931,  2.7368,  2.7145, -3.9586, -4.5067],
        [-2.5430,  3.1436,  0.4276,  4.9429, -3.9803],
        [-4.8381,  2.2152, -0.0488, -3.1134, -0.8363],
        [ 2.0201,  2.0585, -1.9196,  4.1373, -1.7316],
        [ 0.7848, -0.2009,  1.5195,  1.1654,  3.1917],
        [-3.4963, -1.4593, -3.4158, -0.2359,  2.7753],
        [-3.1051,  4.1146,  3.7063,  2.0273,  2.2155],
        [ 3.1474, -2.0087, -4.5295, -4.2529,  1.4613],
        [-2.1027, -1.5898, -2.2465, -0.0616, -0.3081],
        [ 2.5109, -0.4860,  4.5533, -3.9871,  4.4014],
        [ 2.5762,  3.6150,  3.6697,  2.6727,  1.1452],
        [ 3.2965,  4.6623, -3.5024, -2.9590, -2.6721],
        [ 2.6414, -0.4669, -0.9202, -1.6336, -1.3981],
        [-4.5720,  3.8443,  0.4710, -0.7174,  3.8355],
        [-1.9257,  1.7038,  3.0852,  1.2044, -3.3527],
        [-2.4430, -3.5152,  3.5496,  2.6212,  1.0257],
        [-3.0583,  1.9645,  0.3801, -1.6382,  2.4512],
        [-0.0385,  4.4789, -1.7013, -2.0903,  1.3833],
        [ 4.2933,  2.6188, -4.6960,  1.1081, -4.2198],
        [-0.2039, -0.8337, -4.1525, -4.8108,  2.9020],
        [-0.7697, -2.9845,  0.0533, -1.0883,  3.8146],
        [ 4.2894, -1.7978,  4.7777, -2.9532, -2.6912],
        [ 1.7560,  2.5738,  4.0916, -2.5382,  2.1880],
        [-0.7901,  0.7939, -0.8291,  3.7761, -2.7915],
        [ 0.6996, -1.9480, -3.8133,  1.9646,  0.6846],
        [ 2.0919,  4.1692, -4.0214,  0.7682, -3.9532],
        [ 0.8777,  1.8531,  2.7646,  0.7727, -2.5307],
        [-4.3693, -4.0111,  0.8608, -0.7973,  3.9314],
        [ 0.1338, -0.5540,  4.4676,  0.3379,  2.8601],
        [ 0.4134,  4.4440, -0.7308, -2.1561,  4.2330],
        [ 3.8522, -0.7508,  0.8077, -4.7752,  4.9831],
        [-0.8888,  1.1361,  2.2069,  1.5735,  1.9495],
        [ 2.3069,  4.9762,  1.7170, -0.6285, -0.4288],
        [ 4.2809,  3.9716,  2.4083,  1.2223,  3.1949],
        [-3.4101, -1.9735, -2.4614, -3.1017,  1.3372],
        [ 4.0877,  1.6884, -3.6790, -2.6858,  4.5157],
        [ 0.5076,  0.9004, -2.8902,  1.1457,  0.3991],
        [ 0.3813, -1.4987,  4.4285,  2.9475, -4.1204],
        [-1.6288, -0.8885, -0.6103, -0.8161, -4.8144],
        [ 4.7792,  3.3270,  4.9538,  3.7228,  4.8665],
        [ 0.5611,  2.8787, -3.2977, -1.8508,  4.3932],
        [-3.2095, -1.7198, -2.6027,  1.8953,  2.9554],
        [ 3.5004, -4.7438, -1.9374,  3.2402,  2.0795],
        [-1.9729, -1.6052,  0.2497, -3.3727, -0.0442],
        [ 0.8787, -3.2914,  4.2430,  0.6836, -0.4796],
        [-3.8108,  4.0674,  4.1874, -0.0842,  3.6559],
        [ 4.6606,  0.1376,  0.4861,  3.7161,  1.5840],
        [-3.0954, -3.3353,  0.9518, -0.0151,  0.9073],
        [ 0.9914, -0.8149,  1.4000,  3.0963, -1.0546],
        [ 2.6765, -2.2917,  3.0017,  2.1049, -0.0109],
        [ 1.5205, -0.7996, -0.5215,  0.8304,  3.7797],
        [ 3.8587, -0.9120,  1.3310,  3.9604,  3.7375],
        [-0.3455, -0.6303,  4.7153, -3.9362,  3.7105],
        [ 3.4394,  2.6229, -4.8225, -2.1353,  0.9009],
        [ 3.8886, -0.8068,  0.0135, -0.6693,  1.3200],
        [-4.4276,  2.6852, -2.7280, -3.6135, -1.1380],
        [ 2.7119,  0.4588,  2.2637, -4.1454,  0.3942],
        [ 2.0721,  1.1302, -1.5541, -0.0272, -3.6377],
        [-0.3710, -4.4636,  4.3225,  1.4777,  2.0342],
        [-3.5835,  3.9095,  1.6033,  3.8422,  0.7893],
        [ 2.1062,  2.0377, -4.2635,  0.7949,  2.4926],
        [-1.7191,  4.3357,  0.2551,  1.3467, -2.0817],
        [-0.6779,  4.9361, -3.5190, -2.1529, -2.7140],
        [ 2.9835,  0.9250, -3.5111, -2.3589, -1.7609],
        [-1.5244,  3.7784,  1.1123, -2.7087, -3.9695],
        [-4.8867,  2.2938, -0.7644,  2.3565, -4.6017],
        [-1.7106, -3.2373,  2.2981, -2.7906, -4.3491],
        [ 2.3256, -1.2974, -1.5030, -3.5471, -2.9287],
        [ 2.4316,  2.5834,  3.7194,  2.1541, -0.8642],
        [ 1.7509, -2.4056,  1.2216,  3.3783, -3.1881],
        [-3.5738, -3.5298,  3.5508, -1.5876, -2.2626],
        [-2.3320,  3.9580, -1.3648, -3.7359, -2.7323],
        [-0.4656,  4.1121,  0.0856,  1.5414,  1.5111],
        [ 1.5948,  3.5593, -3.3454, -0.1324, -0.5737],
        [ 0.4862, -0.9530, -4.8954, -1.0890,  3.1528],
        [-0.9865,  4.7990, -1.2645,  3.3083, -4.8203],
        [-4.0652, -2.6096,  2.1667,  1.4777, -0.2609],
        [-2.1178, -1.3502, -4.0360, -0.0184,  3.1295],
        [-3.6249,  3.6910,  0.2613,  0.8609, -4.8496],
        [-4.2934, -3.5707,  2.2766, -2.1208, -1.2594],
        [-3.1257, -1.1123,  3.0578, -0.6927, -2.4351],
        [-3.7881,  4.2621, -3.6003,  0.6352, -4.2300],
        [-2.6432, -2.5242,  2.0149, -1.2237, -0.8432],
        [ 3.2253,  3.7056, -0.2699, -3.4172,  3.3371],
        [ 3.7036, -2.6085, -2.5541, -0.4703,  3.4452]]
# Datei im Schreibmodus öffnen
with open('200_Zeilen_Daten.csv', 'w', newline='', encoding='utf-8') as datei:
    # csv.writer-Objekt erstellen
    writer = csv.writer(datei)

    # Daten schreiben
    writer.writerows(daten)
print(daten)
print("CSV-Datei erfolgreich erstellt.")

mechanicalStore
User
Beiträge: 179
Registriert: Dienstag 29. Dezember 2009, 00:09

Was meinst Du denn mit „gut gesichert“? Ich verstehe auch die sinnhaftigkeit nicht ganz. Entweder du kriegst eine Csv mit Daten von irgendwoher (Messsystem, etc), liest die ein, um eine Datensnalyse zu machen, oder du berechnest was, exportierst als Csv ind gibst das einem datenanalysten. Aber alle Daten von Hand in eine Liste klopfen und dann als Csv rausgehen , um die dann in LibreOffice anzusehen, kann sich wohl nur um reines Testen handeln. Zudem ist das keine Liste von Strings, sondern nur ins Liste von Floats.
Komma, wenn du englisch unterwegs bist, Semikolon, wenn du deutsch unterwegs bist.
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

5.8.2025
Ich bin hier quasi als Schüler und Laie unterwegs und versuche gerade CSV zu verstehen. also ein Test
OSWALD
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

6.8.25
@mechanicalStore

Rat v on Profi:
"Benutzer sollten für die Risiken im Umgang mit CSV-Dateien sensibilisiert werden, insbesondere wenn diese sensible Informationen enthalten.
Zusammenfassend lässt sich sagen, dass CSV-Dateien an sich nicht sicher sind und zusätzliche Schutzmaßnahmen erfordern, um sie vor unbefugtem Zugriff, Manipulation und Malware-Infektionen zu schützen. "

OSWALD
Benutzeravatar
snafu
User
Beiträge: 6873
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Das ist jetzt aber kein Problem speziell bei CSV-Dateien, sondern betrifft alle Daten, die man verarbeitet.
Benutzeravatar
__blackjack__
User
Beiträge: 14079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Naja, ausser der Punkt „vor […] Malware-Infektionen schützen“. Das ist bei CSV-Dateien eine eher abstrakte Gefahr.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
snafu
User
Beiträge: 6873
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wer weiß, welche Art von Intelligenz dieser "Profi" tatsächlich ist...
Benutzeravatar
snafu
User
Beiträge: 6873
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Fairerweise sollte man hinzufügen, dass es durchaus CSV-Injections gibt. Die kommen dann zum Tragen, wenn eine CSV-Datei in einer Tabellenkalkulation geöffnet wird:

https://georgemauer.net/2017/10/07/csv-injection.html

Allerdings sind diese Einfallstore im Regelfall längst geschlossen und innerhalb von Python auch nicht relevant.

Wie schon geschrieben, ist das aber ein generelles Thema beim Laden von fremden Dateien. Das *kann*, wie man sieht, sogar vermeintlich harmlose CSV-Dateien betreffen.
mechanicalStore
User
Beiträge: 179
Registriert: Dienstag 29. Dezember 2009, 00:09

@OSWALD,

Wie Du schreibst, bist Du Laie und Schüler und lernst gerade den Umgang mit CSV Dateien. Daher musst Du Dir doch (noch lange) keine Gedanken über sensible Inhalte machen. Wie snafu schon erwähnt hat, gilt das ohnehin nicht nur für CSV. Gegenargument meinerseits ist sogar, dass wir z.B. CSV Dateien nur als Datenübertrag nutzen und eben nicht in Excel oder sonstwo öffnen, weil das wenig Sinn macht (für sowas nutzt man native Formate).
Es ist löblich, dass Du in der Lernphase Profis befragst. Profis wie hier(!). Tipp von mir (als nichtProfi), die Tipps „Deines“ „Profi‘s“ zu differenzieren, denn ohne den zu kennen, hört sich das eher nach Gelaber statt Unterstützung für Anfänger an,

Nix für ungut.
Benutzeravatar
snafu
User
Beiträge: 6873
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

mechanicalStore hat geschrieben: Donnerstag 7. August 2025, 18:19 Gegenargument meinerseits ist sogar, dass wir z.B. CSV Dateien nur als Datenübertrag nutzen und eben nicht in Excel oder sonstwo öffnen, weil das wenig Sinn macht (für sowas nutzt man native Formate).
Sieht in der Praxis aber manchmal anders aus. Ich habe bei einem kleineren Unternehmen schon gesehen, dass die Rechnungen des Vertriebs am Folgetag aus einem dort genutzten Programm in die DATEV für die Buchhaltung importiert wurden. Da beide Formate unterschiedlich waren - also exportierte CSV-Datei von Programm A anders als das erwartete Format zum Import in Programm B - wurde als Zwischenschritt eine Vorlage mit Formeln in Excel aufgemacht. Das benötigte Zielformat fand man aufgrund der Formeln auf der rechten Seite und musste am Ende "nur" noch die Originalspalten löschen und die Datei unter einem anderen Namen abspeichern. Dann konnte man die neue Datei importieren. :)

Ja, ist wirklich so passiert. Wahrscheinlich sollte oder konnte kein VBA benutzt werden. Und selbst dann hätte man ja Excel aufgemacht. Was ich sagen will: Es sind nicht immer ausgebildete Programmierer, die CSV-Dateien benutzen (müssen). Und um ein bestimmtes Ziel zu erreichen, gerade wenn ein gewisser Zeit- bzw. Erfolgsdruck besteht, greift man eben auch zu solchen Mitteln...
OSWALD
User
Beiträge: 601
Registriert: Freitag 18. März 2022, 17:32

8.8.25
Letzter eigener Versuch einer funktionierenden CSV_Datei.
OSWALD

Code: Alles auswählen


import csv

def matrix_to_csv(matrix, filename):
  """
  Schreibt eine Matrix in eine CSV-Datei.

  Args:
    matrix: Die zu speichernde Matrix (Liste von Listen).
    filename: Der Name der zu erstellenden CSV-Datei.
  """
  with open("VERSUCH_CSV.CSV" ,'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    writer.writerows(matrix)

# Beispielmatrix
my_matrix = [['Ware' ,' Menge',' Preis'], ['Bier', 10, 3.50],[ 'Brot ',5,   6.50 ] ,  ['Wein', 14 , 9 ]]
print(my_matrix)
# Speichern der Matrix in 'MATRIXU.csv'
(matrix_to_csv(my_matrix, 'VERSUCH_CSV.csv'))
with open('VERSUCH_CSV.csv', 'r') as file:
        reader = csv.reader(file)
        header = next(reader) # Überspringe die Kopfzeile, falls vorhanden
        for row in reader:
            # Hier die Berechnungen durchführen


         try:
            
            wert1 = float(row[1])
            wert2 = float(row[2])
            summe = ("Wert der einzelnen  Artikel" ,wert1 * wert2)
            
            print(f" Summe: {summe}", )
         except ValueError:
            print(f"Ungültige Werte in Zeile: {row}")










Benutzeravatar
Dennis89
User
Beiträge: 1562
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

das funktioniert so nicht. Sinnvoll wäre es `filename` in deiner Funktion auch zu nutzen. Wenn du den Dateienname von Hand rein schreibst, dann passieren genau so komische Fehler, dass die Datei die du öffnen willst, nicht gefunden wird.
Die Klammer um den Funktionsaufruf ist unnötig und dein Kommentar ist falsch. Ja bei dir wird die Kopfzeile übersprungen, aber es wird nicht geprüft ob es sich um eine Kopfzeile handelt. Wenn du eine Datei so öffnest, die keine Kopfzeile hat, dann wird die erste Reihe übersprungen.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Benutzeravatar
__blackjack__
User
Beiträge: 14079
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das Ergebnis einer Multiplikation `summe` zu nennen ist auch interessant. Beziehungsweise ist das ja sogar ein Tupel aus einem Text und dem Ergebnis der Multiplikation. 😮

`wert1` und `wert2` dürften durchaus sinnvoller benannt werden.

Bei öffnen zum Lesen fehlt das `newline`-Argument.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten