
借助numpydatetime64()方法,我们可以使用以下格式以特定格式(即year-month-day)以numpy数组的形式获取日期numpydatetime64()方法。
用法:
numpydatetime64(date)
返回:Return the date in a format ‘yyyy-mm-dd’
范例1:
在这个例子中,我们可以通过使用numpydatetime64()方法,我们能够以特定格式(即yyyy-mm-dd)获取日期。
# import numpy
import numpy as np
# using numpydatetime64() method
gfg = nparray(npdatetime64('2019-08-26'))
print(gfg)
输出:
array(‘2019-08-26′, dtype=’datetime64[D]’)
范例2:
# import numpy
import numpy as np
# using numpydatetime64() method
gfg = nparray(npdatetime64('2019-08', 'D'))
print(gfg)
输出:
array(‘2019-08-01′, dtype=’datetime64[D]’)
在 上一篇 中我们介绍了 caput 软件包的 mpiutil 模块中提供的若干方便和易用的函数,下面我们将介绍 caput 中另一个模块 mpiarray 提供的建立在 numpy array 基础上的并行分布式数组 MPIArray。
MPIArray 类继承自 numpyndarray,因此 numpy 数组的众多方法都适用于 MPIArray,不过 MPIArray 却能够以一种整体的方式管理和 *** 作分布在不同进程间的 numpy 数组,并提供若干特有的但方便的方法和属性以供使用,下面就将介绍它们。
注意 :因为 MPIArray 类所在的 mpiarray 模块在内部导入使用我们前面介绍过的 mpiutil,因此 MPIArray 也能兼容非 MPI 环境,在此情况下只有单个进程执行,MPIArray 的 comm 属性将为 None,MPIArray 实际上就是一个单一的完整的 numpyndarray,附加上一些额外的属性和方法。
MPIArray 构造方法。创建一个 shape 为 global_shape , 分布在通信子对象 comm 上的,分布轴为 axis 的 MPIArray,其它可选参数同 numpyndarray。 comm 的默认值为 None,在 mpi4py 可用的情况下会使用 MPICOMM_WORLD,不可用时就为 None (此时创建的 MPIArray 就存在于单个进程上)。当 comm 是一个有效的通信子对象时,所创建的 MPIArray 会按照 axis 轴分布在 comm 所包含的所有进程上。MPIArray 只能分布在一个单独的轴上,并且在该轴上的分布必须满足一定的限制,即每个进程所持有的子数组在该轴上的 shape 都相等(如果能够均分的话)或者 rank 较小的一些进程会多 1 (如果不能均分)。这一限制必须在 MPIArray 存在的整个生命时期内都得到满足。MPIArray 在除了分布轴之外的所有其它轴上的 shape 在各个进程中都相同。
由一个 numpy 数组 array 构造一个分布在通信子 comm 上,分布轴为 axis 的 MPIArray 并返回,所创建的 MPIArray 的 global_shape 同 array 的shape。参数 root 可为一个整数或 None,当其为一个整数时,数据将由 rank 等于该整数的进程的 array 散发给所有其它进程,因此其它进程的 array 参数可以为 None;当 root 为 None 时,每个进程从各自的 array 中获取对应的数据,因此一般来说每个进程的 array 应该都相同,但也可以不同。
将当前的 MPIArray 转化为 numpy array。如果 root 为一个整数,则只有 rank 为该整数的进程会返回转化后的 numpy array,其它进程返回 None;如果 root 为 None,则所有进程都返回转化后的 numpy array。
将通信子 comm 上的各个进程所持有的 numpy 数组 array 沿分布轴 axis 包装成一个 MPIArray 并返回。各个进程的 array 在 axis 轴上的 shape 必须满足 MPIArray 的限制要求,即都相等或者 rank 较小的进程多 1,在其它轴上的 shape 必须都相同。 注意 该方法与 from_numpy_array 的区别。
将当前的 MPIArray 重新分布到轴 axis 上,返回一个不与原 MPIArray 共享数据的新的 MPIArray。 注意 :这是一个通信量比较大的 *** 作,数据会在所有进程间重新分布。
一个方便的方法来返回当前的 MPIArray 在轴 axis 上的 local_index 和 global_index 迭代器。global_index 是指在将整个 MPIArray 当作一个大的 numpy array 时的 index,而 local_index 则在每个进程所持有的子数组中的 index。当 axis 不是分布轴时,每个进程返回的 local_index 和 global_index 都是一样的,但当 axis 为分布轴时,除了 rank = 0 的的进程返回的 local_index 和 global_index 一样之外,其它进程的都不一样,因为 local_index 会从 0 开始计数。
由一个 HDF5 文件 f 中的数据 dataset 构造一个分布在通信子 comm 上,分布轴为 axis 的 MPIArray 并返回。 f 可以为一个 HDF5 文件的文件名字符串或者一个打开的 HDF5 文件句柄。HDF5 文件 *** 作以及并行分布式的 HDF5 在后面会有相应的介绍。 注意 :该方法同 from_numpy_array 非常类似,只不过数据的来源不同。
将当前的 MPIArray 中的数据存储到 HDF5 文件 filename 中的数据集 dataset 中,当 create 为 True 时会创建一个新文件,为 False时会写入到已经存在的文件中,此时该存在的文件中如果已经有数据集 dataset 则会出错。HDF5 文件 *** 作以及并行分布式的 HDF5 在后面会有相应的介绍。
将当前的 MPIArray 按照轴 axes 进行转置,即调整轴的次序。返回转置后的新 MPIArray,但是共享原 MPIArray 的数据。
改变当前 MPIArray 的 global_shape。返回 reshpae 后的新 MPIArray,但是共享原 MPIArray 的数据。 注意 不能改变分布轴且分布轴对应的元素必须设置成 None,除此之外同 numpy array 的 reshape。
返回一个当前 MPIArray 的复制对象,其所包含的数据也会进行复制,即不再共享原 MPIArray 的数据。
MPIArray 的整体 shape,每个进程都会返回相同的结果。
每个进程所持有的子数组的 shape。
每个进程所持有的子数组在整个 MPIArray 中各轴的偏移位置,对非分布轴偏移都为 0。
MPIArray 的分布轴。
每个进程所持有的子数组,是一个 numpy array。
MPIArray 的通信子对象,如果 mpi4py 不可用则为 None。
下面给出以上介绍的方法和属性的使用例程。
运行结果如下:
以上我们介绍了 caput 中另一个模块 miarray 提供的建立在 numpy array 基础上的并行分布式数组 MPIArray,其中也提到了 HDF5 文件及其 *** 作,我们将在后面介绍并行分布式的 HDF5 相关 *** 作,在此之前我们先介绍 HDF5 文件的基本内容以及 Python 中 *** 作 HDF5 文件的方法,以为后面的介绍作铺垫,在 下一篇 中我们将介绍 HDF5 文件以及 *** 作 HDF5 文件的 Python 工具 h5py。
以上就是关于怎么用python二维数组取某一行数据全部的内容,包括:怎么用python二维数组取某一行数据、Pandas介绍、dataframe中stu用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)