Saya memiliki Tuple dengan empat kolom/fitur, dan ingin memfilter baris berdasarkan nilai kolom.

score =[a for a in tup if a[1] == 0.1]

Outputnya adalah print(score)

[array([ -2.41888055e-01,   1.00000000e-02,   1.00000000e-08,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   2.39502662e-08,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   5.73615251e-08,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   1.37382380e-07,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   3.29034456e-07,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   7.88046282e-07,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   1.88739182e-06,
     1.00000000e-05]), array([ -2.41888054e-01,   1.00000000e-02,   4.52035366e-06,
     1.00000000e-05]), array([ -2.41888054e-01,   1.00000000e-02,   1.08263673e-05,
     1.00000000e-05]), array([ -2.41888053e-01,   1.00000000e-02,   2.59294380e-05,
     1.00000000e-05]), array([ -2.41888050e-01,   1.00000000e-02,   6.21016942e-05,
     1.00000000e-05]), array([ -2.41888043e-01,   1.00000000e-02,   1.48735211e-04,
     1.00000000e-05]), array([ -2.41888026e-01,   1.00000000e-02,   3.56224789e-04,
     1.00000000e-05]), array([ -2.41887986e-01,   1.00000000e-02,   8.53167852e-04,
     1.00000000e-05]), array([ -2.41887896e-01,   1.00000000e-02,   2.04335972e-03,
     1.00000000e-05]), array([ -2.41887705e-01,   1.00000000e-02,   4.89390092e-03,
     1.00000000e-05]), array([ -2.41887377e-01,   1.00000000e-02,   1.17210230e-02,
     1.00000000e-05]), array([ -2.41887150e-01,   1.00000000e-02,   2.80721620e-02,
     1.00000000e-05]), array([ -2.41888211e-01,   1.00000000e-02,   6.72335754e-02,
     1.00000000e-05]), array([ -2.41891897e-01,   1.00000000e-02,   1.61026203e-01,
     1.00000000e-05]), array([ -2.41895321e-01,   1.00000000e-02,   3.85662042e-01,
     1.00000000e-05]), array([ -2.41895312e-01,   1.00000000e-02,   9.23670857e-01,
     1.00000000e-05]), array([ -2.41892873e-01,   1.00000000e-02,   2.21221629e+00,
     1.00000000e-05]), array([ -2.41889564e-01,   1.00000000e-02,   5.29831691e+00,
     1.00000000e-05]), array([ -2.41888135e-01,   1.00000000e-02,   1.26896100e+01,
     1.00000000e-05]), array([ -2.41888055e-01,   1.00000000e-02,   3.03919538e+01,

Saya ingin menggabungkan semua array individual ini kembali ke satu Tuple sambil mempertahankan urutan nilainya. Tolong bantu saya dan berikan metode untuk memfilter Tuple ini.

0
Ankit Bansal 15 Maret 2017, 22:45

2 jawaban

Jawaban Terbaik

Anda dapat melakukan ini dengan Numpy dan tidak perlu pergi ke tipe data lain menggunakan numpy.where()

Beberapa asumsi yang saya asumsikan bahwa angka yang akan dibandingkan adalah 0,01 vs 0,1 dalam pertanyaan.

import numpy as np
#put your data (tup) as a numpy array here
tup[np.where(tup[:,1]==0.01)]
0
Back2Basics 15 Maret 2017, 20:42

Anda dapat mengurangi untuk menggabungkannya kembali menjadi satu

score = reduce(lambda x,y: x+y, [a for a in tup if abs(a[1] - 0.1) < 10e-9])
0
titipata 15 Maret 2017, 19:59