Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将多个统一变量列表但不同值连接到一个矩阵中?_Python_List_Matrix - Fatal编程技术网

Python 如何将多个统一变量列表但不同值连接到一个矩阵中?

Python 如何将多个统一变量列表但不同值连接到一个矩阵中?,python,list,matrix,Python,List,Matrix,我做了N个实验,每个实验都有一个带有日期的结果列表,即我有N个类型的列表[[float1,date1],[float2,date2],…] 我想制作一个矩阵,(NxM),列出所有实验的结果,以确定共同的日期。 最有效的方法是什么 比如说, 给出三个实验(N=3)的数值: [[float1a, date1], [float2a, date2], [float3a, date3]] [[float1b, date1], [float2b, date2], [float3b, date3]] [[

我做了N个实验,每个实验都有一个带有日期的结果列表,即我有N个类型的列表
[[float1,date1],[float2,date2],…]

我想制作一个矩阵,
(NxM)
,列出所有实验的结果,以确定共同的日期。 最有效的方法是什么

比如说,

给出三个实验(N=3)的数值:

[[float1a, date1],
[float2a, date2],
[float3a, date3]]

[[float1b, date1],
[float2b, date2],
[float3b, date3]]

[[float1c, date1],
[float2c, date2],
[float3c, date3],
[float3, date4]]
我想制作一些类似于:

date1 - float1a float1b float1c
date2 - float2a float2b float2b
date3 - float3a float3b float3c

我不确定我是否正确理解了您的意思,但一般日期指的是相似的日期,您可以创建一个字典,其中每个键都是一个日期,值是该日期的实验列表

{'date1': ['float1', 'float11', etc..], 'date2': [...], ... }
这还可以方便地访问特定日期的结果。 可以通过以下方式完成:

my_results_list =  [[float1, date1], [float2, date2], ...]
results_by_date = {}
for res_couple in results:
    date, result = res_couple
    if date not in results_by_date:
        results_by_date[date] = []
    results_by_date.append(result)
如果这是一个问题,我肯定有更好的方法可以在性能方面做到这一点,但你知道的。
希望这有帮助。

使用
numpy.asmatrix(data,dtype=None)
函数!这是创建矩阵的有效方法

import numpy as np
x = np.array([[float1, date1], [float2, date2], ...])
matrix = np.asmatrix(x)

我会考虑用熊猫来做这样的事情:

import pandas as pd
from datetime import date

expr1 = [[1.2,date(2012,1,1)], [1.3,date(2012,1,2)], [1.4,date(2012,1,3)]]
expr2 = [[1.2,date(2012,1,1)], [1.3,date(2012,1,2)], [1.4,date(2012,1,3)], [1.5,date(2012,1,4)]]
expr3 = [[1.2,date(2012,1,1)], [1.3,date(2012,1,2)], [1.4,date(2012,1,3)]]

exper_df1 = pd.DataFrame(expr1).set_index(1).rename(columns={0: "Result_1"})
exper_df2 = pd.DataFrame(expr2).set_index(1).rename(columns={0: "Result_2"})
exper_df3 = pd.DataFrame(expr3).set_index(1).rename(columns={0: "Result_3"})

experiments = [exper_df2, exper_df3]

exper_df = exper_df1.join(experiments, how='inner')
这将生成一个由您查找的日期标记的数据框:

            Result_1  Result_2  Result_3
1                                       
2012-01-01       1.2       1.2       1.2
2012-01-02       1.3       1.3       1.3
2012-01-03       1.4       1.4       1.4

你有一个包含列表的列表吗?那么,你的列表有多暗?我只想找到常见的日期,也就是说,当我有N个实验的结果时,会有M个这样的日期。然后做一个矩阵,在这里我写下所有N个实验的结果,这些M个共享数据谢谢!但这并不完全是我想要的,而是非常接近。在您的示例中,我希望结果如下所示:0 1 2012-01-01 1.2 1.2 2012-01-02 1.3 1.3 2012-01-03 1.4 1.4如果有日期,请说2012-01-04仅用于expr2,而不是我希望的日期dropped@user2598356-这是表上的内部联接。我已经更新了代码