Создать представление массива для конкретных элементов

Это алфавитное сравнение (AIUI на порядок сортировки может влиять текущий язык). Он сравнивает первый символ каждой строки, и если один слева имеет более высокое значение, это правда, если нижний - false; если они совпадают, тогда он сравнивает второй символ и т. д.

Это not совпадает с целым сравнением, для которого вы используете [[ 2 -gt 1 ]] или (( 2 > 1 )) , Чтобы проиллюстрировать разницу между сопоставлением строк и целых чисел, учтите, что все следующие значения: «true»:

[[ 2 > 10 ]]     # because "2" comes before "1" in ASCII sort order
[[ 10 -gt 2 ]]   # because 10 is a larger number than 2
(( 10 > 2 ))     # ditto
1
задан Andy Perez 26 February 2019 в 21:56
поделиться

1 ответ

Вы можете передать список индексов и извлечь только те значения, которые вас интересуют.

В этом примере я создаю матрицу Eye и из нее я создаю вид по диагонали

tensor = np.eye(3)

>>> diagonal_view = [i for i in range(3)], [i for i in range(3)]
>>> tensor[diagonal_view]
array([1., 1., 1.])

для ваш пример в форме матрицы, вы хотели бы что-то вроде этого

#             1. dimension , 2. dimension
voight_view = [0,1,2,1,2,0],[0,1,2,2,0,1] # voight notation # voight notation
>>> tensor[voight_view]
array([1., 1., 1., 0., 0., 0.])

Если вы не хотите ссылаться, просто используйте

array.copy()

Но кажется, что работает только чистое задание

new_array = tensor[voight_view]
0
ответ дан Martin 26 February 2019 в 21:56
поделиться
Другие вопросы по тегам:

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