如何从np中创建数据帧.Python中的for循环中的数组


import numpy as np
import pandas as pd
all_cases= np.array([])
for i in range(1, 4):
subSoil_array= [i, 2*i, 3*i]
case_i=np.append(subSoil_array, 100*i) 
print(case_i)
#print (all_cases) 

我需要从上面的for循环创建一个数据框架(3行- 4列)。第一行应该是1 2 3 100最后一个:3 6 9 300

我试了几行。没有运气。有什么建议吗?

在numpy中,你不会使用循环,而是使用广播向量代码。

在你的例子中:

arr = np.arange(1, 4)[:,None]*np.array([1, 2, 3, 100])

输出:

array([[  1,   2,   3, 100],
[  2,   4,   6, 200],
[  3,   6,   9, 300]])

带循环

使用列表收集值和vstack:

l = []
for i in range(1, 4):
subSoil_array= [i, 2*i, 3*i]
l.append(np.r_[subSoil_array, 100*i]) 
all_cases = np.vstack(l)

输出:

array([[  1,   2,   3, 100],
[  2,   4,   6, 200],
[  3,   6,   9, 300]])

最新更新