Предполагая, что я хочу иметь массив с размером (n,m)
, где n
очень большой, но с большим количеством дубликатов, т.е.0:n1
идентичны, n1:n2
идентичны и т. Д. (С n2%n1!=0
, то есть не с регулярными интервалами).Есть ли способ сохранить только один набор значений для каждого из дубликатов при просмотре всего массива?
пример:
unique_values = np.array([[1,1,1], [2,2,2] ,[3,3,3]]) #these are the values i want to store in memory
index_mapping = np.array([0,0,1,1,1,2,2]) # a mapping between index of array above, with array below
unique_values_view = np.array([[1,1,1],[1,1,1],[2,2,2],[2,2,2],[2,2,2], [3,3,3],[3,3,3]]) #this is how I want the view to look like for broadcasting reasons
Я планирую умножить массив (просмотр)по некоторому другому массиву размером (1,m)
и возьмем скалярное произведение этого произведения:
other_array1 = np.arange(unique_values.shape[1]).reshape(1,-1) # (1,m)
other_array2 = 2*np.ones((unique_values.shape[1],1)) # (m,1)
output = np.dot(unique_values_view * other_array1, other_array2).squeeze()
Выход - это одномерный массив длины n
.