拆分numpy的阵列分成两个numpy的阵列
问题描述:
我有一个numpy的数组是这样的:拆分numpy的阵列分成两个numpy的阵列
A=[(datetime.datetime(2016, 6, 8, 12, 37, 27, 826000), 3.0)
(datetime.datetime(2016, 6, 8, 12, 37, 27, 827000), nan)
(datetime.datetime(2016, 6, 8, 12, 37, 27, 832000), nan)
(datetime.datetime(2016, 6, 8, 12, 37, 27, 833000), nan)
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 3.0)
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 35.0)]
而且我想把它分成2个numpy的数组:
B=[(datetime.datetime(2016, 6, 8, 12, 37, 27, 826000),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 827000),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 832000),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 833000),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000)]
C=[3.0,nan,nan,nan,3.0,35.0]
给你更多的细节这numpy的阵列起初一个dictionnary,我已经把它转换成numpy的数组,你可以找到下面的代码:
def convertarray(dictionary):
names=['id','data']
formats=['datetime64[ms]','f8']
dtype=dict(names=names, formats=formats)
result=np.array(dictionary.items(),dtype)
return result
答
如果你只是一个有dtype=object
香草阵列,我觉得你最好的办法是通过循环旧的一对夫妇列表内涵,只是构建新的数组:
进口numpy的从numpy的进口楠 进口日期时间NP
A=np.array([(datetime.datetime(2016, 6, 8, 12, 37, 27, 826000), 3.0),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 827000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 832000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 833000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 3.0),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 35.0)])
print(A.dtype)
times = np.array([x[0] for x in A])
values = np.array([x[1] for x in A])
print(times)
print(values)
随着中说,它可能是稍微干净使用记录阵列:
import numpy as np
from numpy import nan
import datetime
A=np.array([(datetime.datetime(2016, 6, 8, 12, 37, 27, 826000), 3.0),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 827000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 832000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 833000), nan),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 3.0),
(datetime.datetime(2016, 6, 8, 12, 37, 27, 837000), 35.0)],
dtype=[('time', object), ('value', float)])
print(A.dtype)
print(A['time'])
print(A['value'])
你有一个字段/字段名的dtype,或者它真的是元组?你应该显示数组dtype。 – mdurant
查阅文档:http://docs.scipy.org/doc/numpy/user/quickstart.html#indexing-slicing-and-iterating,http://docs.scipy.org/doc/numpy/reference/ arrays.indexing.html – wwii
@mdurant谢谢我发现了一些有用的东西 – ibia75