我想创建矩阵1x5:matriz1
,matriz2
和matriz3
,值为i + j
,但我的代码不起作用。有人能帮助我吗?
import numpy as np
for i in range(3):
name= 'matriz%d'%i
name= np.zeros((1,5))
for i in range(3):
name2 = 'matriz%d'%i
for j in range(5):
name2[j]=i+j
for i in range(3):
name3 = 'matriz%d'%i
print(name3)
答案 0 :(得分:1)
在Python中,这两行只是将两个不同的对象分配给变量name
。
name= 'matriz%d'%i # assign a string
name= np.zeros((1,5)) # assign an array
其他一些语言的机制允许您将字符串用作变量名称,例如$name = ...
。但在Python中,即使不是不可能,也很尴尬。相反,你应该使用结构,例如字典。
e.g。
adict = {}
for i in range(3):
name= 'matriz%d'%i
adict[name] = np.zeros((1,5))
然后,您可以通过字典引用访问此数组,例如:adict['matriz3']
您还可以使用列表,并按编号或列表迭代访问各个数组:
alist = [np.zeros((1,5)) for i in range(3)]
for i,A in enumerate(alist): # iteration with index
A[:] = i+np.arange(5)
for a in alist: # simple iteration
print(a)