def gendata():
    for i in range(N):
        yield np.random.random(), str(i)
N = 100
arr = np.fromiter(gendata(), dtype='<f8,|S20')
Как заполнить два (или более) массива numpy из одной итерации кортежей?