如何在numpy数组中选择

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在numpy数组中选择相关的知识,希望对你有一定的参考价值。

这里是同一变量中的两个numpy数组。如何选择数组最后一行中的最后一个?将其放在单独的变量中?

      j = [[7.60243100e+06 7.66034500e+06 7.79095700e+06 7.86080000e+06
         7.90957500e+06 7.94365200e+06 8.05480000e+06]

         [9.92760000e+06 9.94780000e+06 9.98700000e+06 1.00683190e+07
            1.01006310e+07 1.01305740e+07 1.01430470e+07]

所以我想将1.01430470e + 07和8.05480000e + 06放在一列的新变量中

答案

您可以对阵列进行切片操作。

>>> a = np.arange(10).reshape(2,5)
>>> a
array([[0, 1, 2, 3, 4],
       [5, 6, 7, 8, 9]])
>>> a[:,-1]
array([4, 9])

此简单但功能强大的-1从数组中获取最后一个数据,或者您也可以反转数组并获取第一个值。有关更多信息,请参考:Numpy Quickstart Guide

另一答案

首先,我正在设置您的问题,因此我可以对其进行测试。我无法读取numpy打印输出作为数据。请查询MCVE以获取将来的帖子。

import numpy as np


listj = [[7.60243100e+06, 7.66034500e+06, 7.79095700e+06 ,7.86080000e+06,
         7.90957500e+06, 7.94365200e+06, 8.05480000e+06],

         [9.92760000e+06, 9.94780000e+06, 9.98700000e+06, 1.00683190e+07,
            1.01006310e+07, 1.01305740e+07, 1.01430470e+07]]

j=np.array(listj)
j

输出:

array([[ 7602431.,  7660345.,  7790957.,  7860800.,  7909575.,  7943652.,
         8054800.],
       [ 9927600.,  9947800.,  9987000., 10068319., 10100631., 10130574.,
        10143047.]])

现在只使用切片(:代表所有,-1代表最后一个):

print(j[:,-1])

输出:

 [ 8054800. 10143047.]

以上是关于如何在numpy数组中选择的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Numpy 中选择最新的分钟值?

如何对齐两个大小不等的时间序列numpy数组?

如何在numpy的二维矩阵中随机采样

如何在 numpy 数组中获取用户输入

如何在numpy中对称地移动数组

如何在numpy中反转排列数组