[英]How to zip two arrays in Python and keep the original shape?
我有兩個不同的數組,我想彼此組合,以便新數組的形狀仍與每個舊數組相同。
import numpy as np
x = (['1','2','3','4','5','6','7','8','9'])
y = (['a','b','c','d','e','f','g','h','i'])
z = np.array(zip(x,y))
print z
print np.shape(z)
讓我
[['1' 'a']
['2' 'b']
['3' 'c']
['4' 'd']
['5' 'e']
['6' 'f']
['7' 'g']
['8' 'h']
['9' 'i']]
(9, 2)
我想要
[['1 a']
['2 b']
['3 c']
['4 d']
['5 e']
['6 f']
['7 g']
['8 h']
['9 i']]
(9,)
因為我需要新數組只有一個維才能進行進一步處理。 因為我是新手,所以我認為zip()函數可能不合適,但是我也嘗試了.join()函數,但我無法以這種方式解決。
我認為您只需在拉鏈后加入即可。 試試這個列表理解:
z = [" ".join(item) for item in zip(x, y)]
這是你的意思嗎?
x =(['1','2','3','4','5','6','7','8','9'])
y = (['a','b','c','d','e','f','g','h','i'])
z =np.array(zip(x,y))
print z
print z[:,0].shape
您可以創建一個類來容納兩個項目,以便更好地訪問。 例如,
import numpy as np
class Elem():
def __init__(self, a, b):
self.a = a
self.b = b
def create(lst):
l = []
for a, b in lst:
l.append(Elem(a, b))
return l
x = ['1','2','3','4','5','6','7','8','9']
y = ['a','b','c','d','e','f','g','h','i']
z = np.array(create(zip(x,y)))
print np.shape(list(z))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.