从numpy数组中随机选择两行

2024-04-26 06:36:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个核阵列

[[  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]]

3条回答

我相信你只是在寻找:

#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)]

你是说“数组”吗?在我看来这是一张单子。

尝试:

import random
out_list = random.sample(your_numpy_list,2)

这将为您提供一个包含列表中两个不同成员的列表(请参见documentation for random

假设你的数组是:

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)]

你可能还想看看^{}

相关问题 更多 >

    热门问题