我有一个返回numpy数组的函数。我使用不同的数据文件循环调用该函数,但每次循环都会输出不同大小的数组(这是期望的输出),但我无法弄清如何正确地将这些数组附加在一起。下面是示例数组以及我从文件中获取数据后使用的排列方法:
我不希望使用零或NaN来填充数据中的空缺,因为这样会增加更多的工作量。
为了使输出的数据像这样组织起来,必须使用列宽为2的垂直数组来完成:
所以第一次循环将产生这个垂直的3,2数组,而循环的第二次迭代将产生4,2数组,我想将4,2数组附加或连接到原始的3,2数组中,以此类推。这些数组集合的宽度总是为2,但长度会从每组2中改变。
我尝试使用基本的np.column_stack,np.concatenate和np.append函数,但它们不起作用。如果这些是列表而不是numpy数组,则可以更好地工作,甚至将输出数据组织在数据框中也可以。
======= 更新 =======
为了更具体,在尝试了一些提供的解决方案之后,以下是我的问题的更多详细信息。 我的函数从数据文件中获取数据(工作正常),该文件返回值相同维度的2个列表或数组(也没有问题)。
现在,我正在尝试在目录中循环遍历所有文件,我想将每个文件的这两个列表(或数组)附加/连接在一起,但它们的大小可能不同。当我尝试垂直将它们放在一起以生成输出数据的列时,问题就出现了。此外,在循环中需要对值进行简单的数学运算,因此我认为它们可能需要成为numpy数组(或类似物),而不是列表。
循环#1返回:
现在,我需要对它们进行数学运算,并将它们分别垂直组织到列数据中,而不会切断任何数据。这可以通过在空格中放置Na或使用数据框来完成,如果那行得通,我可以在导出之前更正那些空格。我希望它看起来像这样:
a1 = np.array([1,2,3])
a2 = np.vstack(a1)
# array([[1],
[2],
[3]])
b1 = np.array([4,5,6,7])
b2 = np.vstack(b2)
# array([[4],
[5],
[6],
[7]])
我有两个数组,其中一个有3个元素,另一个有4个元素。我想把它们垂直排列,使其导出后的效果如下:
1 4
2 5
3 6
7
我不希望使用零或NaN来填充数据中的空缺,因为这样会增加更多的工作量。
为了使输出的数据像这样组织起来,必须使用列宽为2的垂直数组来完成:
1 2 5 6 10 11
2 3 6 7 11 12
3 4 7 8 12 13
8 9
所以第一次循环将产生这个垂直的3,2数组,而循环的第二次迭代将产生4,2数组,我想将4,2数组附加或连接到原始的3,2数组中,以此类推。这些数组集合的宽度总是为2,但长度会从每组2中改变。
我尝试使用基本的np.column_stack,np.concatenate和np.append函数,但它们不起作用。如果这些是列表而不是numpy数组,则可以更好地工作,甚至将输出数据组织在数据框中也可以。
======= 更新 =======
为了更具体,在尝试了一些提供的解决方案之后,以下是我的问题的更多详细信息。 我的函数从数据文件中获取数据(工作正常),该文件返回值相同维度的2个列表或数组(也没有问题)。
现在,我正在尝试在目录中循环遍历所有文件,我想将每个文件的这两个列表(或数组)附加/连接在一起,但它们的大小可能不同。当我尝试垂直将它们放在一起以生成输出数据的列时,问题就出现了。此外,在循环中需要对值进行简单的数学运算,因此我认为它们可能需要成为numpy数组(或类似物),而不是列表。
循环#1返回:
outdata1 = [0.0012, 0.0013, 0.00124, 0.00127]
outdata2 = [0.0016, 0.0014, 0.00134, 0.0013]
循环#2返回:
outdata1 = [0.00155, 0.00174, 0.0018]
outdata2 = [0.0019, 0.0020, 0.0021]
以此类推...现在,我需要对它们进行数学运算,并将它们分别垂直组织到列数据中,而不会切断任何数据。这可以通过在空格中放置Na或使用数据框来完成,如果那行得通,我可以在导出之前更正那些空格。我希望它看起来像这样: