Untitled
unknown
plain_text
2 years ago
2.1 kB
3
Indexable
import numpy as np def map_value_to_2D_binary(array, length): result = np.zeros((len(array), length)) valid_indices = (array < length) & (array >= 0) result[np.arange(len(array))[valid_indices], array[valid_indices]] = 1 return result if __name__ == '__main__': # Initial array array = np.array([2, 3, 7, 5]) length = 10 expected = np.array( [ [0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0] ]) print(np.array_equal(map_value_to_2D_binary(array, length), expected)) # Out of range and negative values array = np.array([-2, 14, 2, 3, 2, 7, 5, 7]) length = 10 expected = np.array( [ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0] ]) print(np.array_equal(map_value_to_2D_binary(array, length), expected)) # All values out of range array = np.array([10, 11, 12, 13]) length = 10 expected = np.array( [ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ]) print(np.array_equal(map_value_to_2D_binary(array, length), expected)) # All values are the same array = np.array([5, 5, 5, 5]) length = 10 expected = np.array( [ [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0] ]) print(np.array_equal(map_value_to_2D_binary(array, length), expected)) # Array contains only one value array = np.array([5]) length = 10 expected = np.array( [ [0, 0, 0, 0, 0, 1, 0, 0, 0, 0] ]) print(np.array_equal(map_value_to_2D_binary(array, length), expected))
Editor is loading...