Как фильтровать массив numpy на основе поля его элементов [duplicate]

Функция:

public float simpleSimilarity(String u, String v) {
    String[] a = u.split(" ");
    String[] b = v.split(" ");

    long correct = 0;
    int minLen = Math.min(a.length, b.length);

    for (int i = 0; i < minLen; i++) {
        String aa = a[i];
        String bb = b[i];
        int minWordLength = Math.min(aa.length(), bb.length());

        for (int j = 0; j < minWordLength; j++) {
            if (aa.charAt(j) == bb.charAt(j)) {
                correct++;
            }
        }
    }

    return (float) (((double) correct) / Math.max(u.length(), v.length()));
}

Тест:

String a = "This is the first string.";

String b = "this is not 1st string!";

// for exact string comparison, use .equals

boolean exact = a.equals(b);

// For similarity check, there are libraries for this
// Here I'll try a simple example I wrote

float similarity = simple_similarity(a,b);
1
задан reynum 19 December 2017 в 12:20
поделиться

1 ответ

Вы должны выполнить условие только через столбец first :

x_displayed = xy_dat[((xy_dat[:,0] > min) & (xy_dat[:,0] < max))]

. Здесь мы создаем представление, в котором мы учитываем только первый столбец с xy_dat[:,0]. Теперь, проверяя, находится ли этот 1d между границами, мы строим булевский массив 1D строк, которые мы должны сохранить, и теперь мы делаем выбор этих строк, используя его как элемент в параметре xy_dat[..] .

3
ответ дан Willem Van Onsem 16 August 2018 в 04:33
поделиться
  • 1
    [:,0] означает через весь первый массив, только с первым элементом второго? Не знал, это здорово! – IMCoins 19 December 2017 в 12:26
  • 2
    @IMCoins: это означает, что первый столбец каждой строки да :) – Willem Van Onsem 19 December 2017 в 12:27
  • 3
    О, верно, он работает только с numpy.arrays. Я попробовал это на некоторых массивах python, и какая-то невероятная печаль появилась у меня на глазах. : '( – IMCoins 19 December 2017 в 12:34
  • 4
    @IMCoins Вы всегда можете подклассы списков и перегружать __getitem__ самостоятельно :) – coldspeed 19 December 2017 в 12:44
  • 5
    @IMCoins: мы можем построить подкласс списков валиков Python, чтобы он также работал со списками. Однако возможная проблема заключается в том, что элементы Python могут быть гибридными, а подписи могут иметь разный размер. Итак, как бы вы работали с [1, [], [14], 'ab']? Просто игнорируйте недопущения и пустые списки? – Willem Van Onsem 19 December 2017 в 12:48
Другие вопросы по тегам:

Похожие вопросы: