我必须列出:
a=[1,2,3]
和
b=[4,5,6]
我想创建包含两个列表数组的数组,所以我做了
c=np.array([[a],[b]])
我的问题是:如何在循环中实现它?要创建一个空数组,然后在数组中创建数组?
致电c[1]
将返回array([[4, 5, 6]])
。我如何访问,例如5进入阵列?
答案 0 :(得分:1)
c [1]会让[[4 5 6]]
访问5 c[1][0][1]
import numpy as np
b=[4,5,6]
a=[1,2,3]
c=np.array([[a],[b]])
print c[1][0][1]
<强>更新强>
这样做更容易:
import numpy as np
b=[4,5,6]
a=[1,2,3,9] #I added an element to clarify how to manage indexes in case u have diff sizes
c=np.array([a,b])
#j= sum(1 for x in c if isinstance(x, np.ndarray)) Another way to see how many item in the list
for j in range(len(c)): #Selecting the list (a,b ..)
i=0
while i<=len(c[j])-1: #Looping in the list
print "index (",i,",",j,"):",c[j][i]
i+=1
答案 1 :(得分:1)
你想要这个吗?
a = [1,2,3];
b = [4,5,6];
c = [a,b];
c[1][1] # Gives you 5
在循环中执行
for z in [a,b]:
c.append(z)
# continue as usual......
另外,你真的不需要numpy这样做。如果你这样做,请按照@Taha的回答。
答案 2 :(得分:0)
如果从外部源(也就是文件)将数字列表读入您的程序,则不推荐您的预期程序(我的答案毫无意义),因为numpy
提供了一些i/o
透明有效地完成这类工作的职能,例如numpy.loadtxt。
import numpy as np
r = [1,2,3]
s = [4,5,6]
t = [7,8,9]
arr = np.array([row for row in (r,s,t)])
print arr
输出
# [[1 2 3]
# [4 5 6]
# [7 8 9]]