python Matrix und shape Information

Neue Frage »

Auf diesen Beitrag antworten »
Haevelin python Matrix und shape Information

Wenn ich eine Matrix übergebe, in Python, und dann mit shape die Dimensionen herausfinde, so möchte ich gerne eine neue Matrix erzeugen, mit denselben Dimensionen wie die Ursprungsmatrix, die mit Zufallszahlen gefüllt ist. Wie mache ich das? D.h. wie nutze ich die shape Informationen um eine neue Matrix anzulegen, und wie befülle ich dann die Matrix mit Werten?
 
Auf diesen Beitrag antworten »
Haevelin RE: python Matrix und shape Information

Folgenden Code habe ich entwickelt:


x= Matrix()
y= Matrix()

diese werden global definiert. Dann in einer Methode mit matrix=Matrix([0,0,0]) wird folgendes definiert:

def init_vectors(b, matrix):
global x, y, text1
norm_Matrix=matrix
# norm_Matrix.shape
for i in range (norm_Matrix.shape[0]):
for j in range(norm_Matrix.shape[1]):
x[i][j]=randint(-10,10)
y[i][j]=randint(-10,10)


Ist damit x und y festgelegt. Leider kann ich das Programm in meinem Jupyter Notebook momentan nicht starten; weiß den Fehler noch nicht. Muss ich insbesondere x und y erst eine Dimension geben, ehe ich sie füllen kann?
Ich erhalte nunmehr einen Fehler list index out of range; wie kommt das zustande?
Auf diesen Beitrag antworten »
Haevelin RE: python Matrix und shape Information

Hier ein Programm, welches die Vorinitialisierung richtig durchführt, aber die anschließende Belegung mit Werten noch nicht richtig macht. Wo ist der Fehler?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
from sympy.matrices import *
from sympy.printing import *
# from IPython.display import display, HTML, Math, Latex, clear_output
# from ipywidgets import widgets from random import randint


x = Matrix() 
y = Matrix() 
norm_Matrix = Matrix()

def init_vectors(matrix):
         global x, y
         norm_Matrix=matrix
         x_range=norm_Matrix.shape[0]
         y_range=norm_Matrix.shape[1]
         print(x_range)
         print(y_range)
         # x[0:x_range,0:y_range]
         # y[0:x_range,0:y_range]
         # norm_Matrix.shape
         x=zeros(y_range,x_range)
         y=zeros(y_range,x_range)
         #x.shape(x_range,y_range)
         print(x)
         print(y)
         for j in range (norm_Matrix.shape[1]):
 	        for i in range(norm_Matrix.shape[0]):                      
                          x[j][i]=randint(-10,10)
 	                  y[j][i]=randint(-10,10)
         print(x)
         print(y)

def main():
     init_vectors(Matrix([0,0,0]))

if __name__ == "__main__": main()
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »