python 如何生成随机矩阵并按条件筛选随机生成的矩阵?

关注者
1
被浏览
2,567

1 个回答

这边推荐你用numpy来快速生成,使用方式如下:

假设要生成一个3x4的随机数字的矩阵可以使用numpy.random.ranf((3,4))来生成范围[0,1)的随机小数矩阵,然后假设想限定范围在-5~6之间那么只需对该矩阵乘上11再减去5即可。综合代码是numpy.random.ranf((3,4))*11.0-6.0

如果要生成整数型矩阵就用numpy.random.randint(),并且这个函数能直接限定范围。


然后你想要筛选矩阵的话可以考虑用numpy.where、numpy.argwhere以及numpy.sum相结合,比方说我想筛选的矩阵要求是其内有且只有一个数是66,然后我现在有n个整数型矩阵(不考虑矩阵大小),参考代码可以如下:

import numpy as np

matrixs=np.random.randint((100,5,6),0,100)#这里假设有100个5x6的0~99的随机矩阵

indexs=np.argwhere(np.sum(np.sum(matrixs==66, axis=2), axis=1)==1)#这个是取筛选出的矩阵序列号

matrixs=matrixs[indexs,:,:]#这里就筛选出来了

这里用手机打的,没确定运行一下代码,要是有误的话跟我说一下(´›・ω・‹`)