In [34]: a
Out[34]: [[1, 15.02], [2, 14.38], [3, 14.6]]
In [35]: b=np.array(a, dtype=float).T
In [36]: b
Out[36]:
array([[ 1. , 2. , 3. ],
[ 15.02, 14.38, 14.6 ]])
In [37]: list(zip(*b))
Out[37]: [(1.0, 15.02), (2.0, 14.380000000000001), (3.0, 14.6)]
경우 내가 먼저 지난 b
tolist
통해 : 첫 번째 경우
In [38]: list(zip(*b.tolist()))
Out[38]: [(1.0, 15.02), (2.0, 14.38), (3.0, 14.6)]
의 요소 튜플은 여전히 np.float64
래퍼를 가지고 있으며, tolist
은 모든 것을 파이썬 고유 번호로 추출합니다 :
In [39]: type(list(zip(*b))[1][1])
Out[39]: numpy.float64
In [40]: type(list(zip(*b.tolist()))[1][1])
Out[40]: float
item
는 고유 번호를 추출하는 또 다른 방법이다 :
In [41]: list(zip(*b))[1][1]
Out[41]: 14.380000000000001
In [42]: list(zip(*b))[1][1].item()
Out[42]: 14.38
나는 setprintoptions
이 np.float64
의 경우에는 적용되지 않는 이유를 말할 수는 없지만, np.array
로한다.
일반적으로 배열과 모든 값을 기본 Python 목록으로 변환하려면 tolist()
을 사용하는 것이 좋습니다. 목록 및 우편 번호와 같은 작업으로는 충분하지 않습니다. 그들은 배열의 첫 번째 차원을 반복하지만, 재귀 적 요소를 변환하지 않습니다
부분 변환 (들) :
In [43]: list(b)
Out[43]: [array([ 1., 2., 3.]), array([ 15.02, 14.38, 14.6 ])]
In [44]: list(b[1])
Out[44]: [15.02, 14.380000000000001, 14.6]
전체 변환 : 분명히
In [45]: b.tolist()
Out[45]: [[1.0, 2.0, 3.0], [15.02, 14.38, 14.6]]
을 float64
의 포맷터는 set_printoptions
값과 관계없이 모든 정밀도를 표시합니다.
In [58]: 14.380000000000001
Out[58]: 14.38
In [59]: np.array(14.380000000000001)
Out[59]: array(14.38)
In [60]: np.float64(14.380000000000001)
Out[60]: 14.380000000000001
In [61]: np.float32(14.380000000000001)
Out[61]: 14.38
np.float64(...)
개체는 여러 가지면에서 단일 항목 배열과 비슷하지만 미묘한 차이가 있습니다. 일반적으로 우리는 그러한 객체를 직접 생성하지는 않습니다.
더 이상 np 배열이 아니고 numpy의 인쇄 기법이 사용되지 않았기 때문에? – sascha
이 경우 어떤 인쇄 기법을 적용해야합니까? – Krischu
정확한 유스 케이스에 따라 [this] (https://stackoverflow.com/a/1567630/2320035)와 같은 문자열 형식을 기반으로 나 자신을 정의해야합니다. – sascha