我正在研究一个非常简单的使用 numpy 进行随机游走模拟的示例。我的教授坚持我们尽可能多地使用 numpy 的广播功能而不是 for 循环,我想知道是否可以广播字典定义。
例如,我有数组 [EWNS]。使用字典遍历该数组将导致 [[1, 0] [-1, 0] [0, 1] [0, -1]]。
import numpy as np
import matplotlib.pyplot as plt
def random_path(origin, nsteps, choices, choice_probs, choice_map):
directions = np.random.choice(choices, size=(15,), p=choice_probs)
print directions
def main():
directions = ['N', 'S', 'E', 'W']
dir_probabilities = [.2, .3, .45, .05]
dir_map = {'N': [0, 1], 'S': [0, -1], 'E': [1, 0], 'W': [-1, 0]}
origin = [0, 0]
np.random.seed(12345)
path = random_path(origin, 15, directions, dir_probabilities, dir_map)
main()