我有一个numpy数组
[[ 5.80084178e-05 1.20779787e-02 -2.65970238e-02]
[ -1.36810406e-02 6.85722519e-02 -2.60280724e-01]
[ 4.21996519e-01 -1.43644036e-01 2.12904690e-01]
[ 3.03098198e-02 1.50170659e-02 -1.09683402e-01]
[ -1.50776089e-03 7.22369575e-03 -3.71181228e-02]
[ -3.04448275e-01 -3.66987035e-01 1.44618682e-01]
[ -1.46744916e-01 3.47112167e-01 3.09550267e-01]
[ 1.16567762e-03 1.72858807e-02 -9.39297514e-02]
[ 1.25896836e-04 1.61310167e-02 -6.00253128e-02]
[ 1.65062798e-02 1.96933143e-02 -4.26540031e-02]
[ -3.78020965e-03 7.51770012e-03 -3.67852984e-02]]
我想从中选择任意两个随机行,因此输出将为 -
[[ -1.36810406e-02 6.85722519e-02 -2.60280724e-01]
[ 1.16567762e-03 1.72858807e-02 -9.39297514e-02]]
答案 0 :(得分:8)
我相信你只是在寻找:
#Create a random array
>>> a = np.random.random((5,3))
>>> a
array([[ 0.26070423, 0.85704248, 0.82956827],
[ 0.26840489, 0.75970263, 0.88660498],
[ 0.5572771 , 0.29934986, 0.04507683],
[ 0.78377012, 0.66445244, 0.08831775],
[ 0.75533819, 0.05128844, 0.49477196]])
#Select random rows based on the rows in your array
#The 2 value can be changed to select any number of rows
>>> b = np.random.randint(0,a.shape[0],2)
>>> b
array([1, 2])
#Slice array a
>>> a[b]
array([[ 0.26840489, 0.75970263, 0.88660498],
[ 0.5572771 , 0.29934986, 0.04507683]])
或者简单地说:
a[np.random.randint(0,a.shape[0],2)]
答案 1 :(得分:2)
尝试:
import random
out_list = random.sample(your_numpy_list,2)
这将为您提供一个列表,其中包含列表中的两个不同成员(请参阅documentation for random)
答案 2 :(得分:1)
说你的数组是:
import numpy as np
a=np.random.random((11,3))
获取两个随机行:
a[randint(0,11,size=2)]
获得两个随机列:
[a[:,x] for x in randint(0,3,size=2)]
您可能还想查看random