는 I 20 개 유한 값이 3-27 범위 값들의 세트를 가지고저장소를 기반으로 행렬을 만드는 방법은 무엇입니까?
A = [(0,21),(1,12),(2,15),(3,3),(4,21),(5,15),(6,27),(7,21),(8,9),(9,27),(10,12),(11,9),(12,12),(13,3),(14,9),(15,12),(16,6),(17,3),(18,9),(19,15)]
I는, 범위를 갖는 각 9 빈들했을 NumPy와 배열을 만드는 방법하고자
주어진 튜플 [1]에 대해 -1과 +1 정수, 3-27의 범위에서 3의 배수 (그러나 이것은 정수와 범위의 다른 조합으로 바꿔야합니다). 내가 NumPy와는 (num, bins) = histogram(x, bins=None, range=None)
을 가지고 방법에 읽고 있던
[[0,0,0,0,0,0,1,0,0],
[0,0,0,1,0,0,0,0,0],
[0,0,0,0,1,0,0,0,0],
[1,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,1,0,0],
[0,0,0,0,1,0,0,0,0],
[0,0,0,0,0,0,0,0,1],
....]
하지만 난 그로 이동하는 방법을 아주 확실하지 않다 : 결국, 내가 이렇게 보이는 행렬을 만들 수 있도록하고 싶습니다.
고유 한 값 ('a')을 얻고 (a-1, a + 1) 범위를 수행하려면 'A'를 반복해야한다고 생각 했었습니다. 단지 len(unique_values)
일 것입니다. 그런데 나는 길을 잃는다. 누군가 나를 안내 할 수 있습니까?
out = np.zeros((len(ids), 9),dtype=int)
out[np.arange(len(ids)), ids] = 1
튜플의 첫 번째 요소가 있다면 - 배열 초기화에 의해 대체 될 수
bins = np.arange(3,28,3)
ar = np.asarray(A)[:,1] # or np.array([i[1] for i in A])
ids = np.searchsorted(bins, ar) # or np.digitize(ar,bins)-1
out = (ids[:,None] == np.arange(9)).astype(int)
최종적인 출력을 얻기 위해 마지막 단계 -
완벽한 답변! 고맙습니다!! – Daniel