Это делает что-то немного другое, чем вы можете себе представить. Вместо того, чтобы создавать массив с указанными вами данными, номерами 1 и 2, вы фактически создаете массив типа object
. См. Ниже:
>>> np.array({1, 2)).dtype
dtype('O')
Это потому, что наборы не являются "подобными массиву", в терминологии NumPy, в частности, они не упорядочены. Таким образом, при построении массива массив строится не с содержимым набора, а с самим набором как одним объектом.
Если вы действительно хотите построить массив из содержимого набора Вы можете сделать следующее:
>>> x = np.fromiter(iter({1, 2}), dtype=int)
>>> x.dtype
dtype('int64')
Редактировать: Этот ответ помогает объяснить, как различные типы используются для построения массива в NumPy.