2013-10-17 145 views
0

假設我有一個2列的數組。它看起來像這樣 column1 = [1,2,3,...,830] column2 = [a,b,c,...]2列循環打印到1

我想要在單列,其中包括兩列的價值。輸出形式:柱= [1,,2,B ....]

我試圖通過該代碼來執行,

dat0 = np.genfromtxt("\", delimiter = ',') 
mu = dat0[:,0] 
A = dat0[:,1] 
print(mu,A) 
R = np.arange(0,829,1) 
l = len(mu) 
K = np.zeros((l, 1)) 
txtfile = open("output_all.txt",'w') 
for x in mu: 
    i = 0 
    K[i,0] = x 
    dat0[i,1] = M 
    txtfile.write(str(x)) 
    txtfile.write('\n') 
    txtfile.write(str(M)) 
    txtfile.write('\n') 
print K 

回答

1

我不完全理解您的代碼,是numpy的基準真的與你的問題有關?什麼是M

如果您有兩個相同長度的列表,您可以使用zip內建的元素獲取元素對。

A = [1, 2, 3] 
B = ['a', 'b', 'c'] 

for a, b in zip(A, B): 
    print(a) 
    print(b) 

這將打印

1 
a 
2 
b 
3 
c 
+0

我覺得OP想用那些元素的列表。因此,我猜想附加是爲了? – Jblasco

+0

追加可能是最清晰的,如果你更喜歡只使用迭代,你可以使用'[x爲zip中的對(A,B)爲x] [ – Leonhard

+0

聰明,我試圖這樣做,但沒有'用一種乾淨的方式管理:)。 – Jblasco

0

我敢肯定有更好的方式來做到這一點,但一個方法是

>>> a = numpy.array([[1,2,3], ['a','b','c'],['d','e','f']]) 
>>> new_a = [] 
>>> for column in range(0,a.shape[1]):   # a.shape[1] is the number of columns in a 
...  for row in range(0,a.shape[1]):   # a.shape[0] is the number of rows in a 
...    new_a.append(a[row][column]) 
... 
>>> numpy.array(new_a) 
array(['1', 'a', 'd', '2', 'b', 'e', '3', 'c', 'f'], 
    dtype='|S1')