gpt4 book ai didi

python - 选择 numpy 数组,使最后一个元素为 1

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:41 29 4
gpt4 key购买 nike

假设我们有一个像这样的数据集:

X = 
6 2 1
-2 4 -1
4 1 -1
1 6 1
2 4 1
6 2 1

我想从中获取两个数据,一个的最后一位数字为 1,另一个的最后一位数字为 -1。

X0 = 
-2 4 -1
4 1 -1

并且,

X1 = 
6 2 1
1 6 1
2 4 1
6 2 1

我们如何在 numpy 中有效地做到这一点?

在简单的Python中,我可以这样做:

dataset = np.loadtxt('data.txt')

X0, X1 = [], []
for i in range(len(X)):
if X[i][-1] == 1:
X0.append(X[i])
else:
X1.append(X[i])

这又慢又麻烦,Numpy 又快又简单,所以,如果 numpy 有更简单的方法,我将不胜感激。谢谢。

最佳答案

假设你有一个数组:

>>> arr
array([[ 6, 2, 1],
[-2, 4, -1],
[ 4, 1, -1],
[ 1, 6, 1],
[ 2, 4, 1],
[ 6, 2, 1]])

然后简单地:

>>> mask1 = arr[:, -1] == 1
>>> mask2 = arr[:, -1] == -1
>>> X1 = arr[mask1]
>>> X2 = arr[mask2]

结果:

>>> X1
array([[6, 2, 1],
[1, 6, 1],
[2, 4, 1],
[6, 2, 1]])
>>> X2
array([[-2, 4, -1],
[ 4, 1, -1]])

关于python - 选择 numpy 数组,使最后一个元素为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47043554/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com