我正在尝试使用存储在2个变量中的数字创建一个矩阵/ DataFrame
x = np.linspace(0,50)
y = np.exp(x)
我希望他们看起来像这样:
x | y
___________________
0 | 1.0...
1 | 2.77...
2 | 7.6...
... | ...
50 | 5.18e+21...
我希望它位于DataFrame
中,因此可以与pandas
库一起使用。
预先感谢
答案 0 :(得分:4)
exp(2)
将字典中的键更改为所需的列名。
答案 1 :(得分:3)
您可以执行以下操作。
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['x'] = np.linspace(0,50)
df['y'] = np.exp(df['x'])
答案 2 :(得分:3)
使用pandas
:
您可以发布
>>> xs = np.arange(51)
>>> ys = np.exp(xs)
获取x和y值,然后使用构建数据框
>>> df = pd.DataFrame({'x': xs, 'y': ys})
>>> df
x y
0 0 1.000000e+00
1 1 2.718282e+00
2 2 7.389056e+00
3 3 2.008554e+01
...
在这种情况下,您还可以将x值用作系列的索引,而不会丢失任何信息。
>>> index = pd.RangeIndex(0, 51, name='x')
>>> exps = pd.Series(data=np.exp(index), index=index, name='y')
>>> exps
x
0 1.000000e+00
1 2.718282e+00
2 7.389056e+00
3 2.008554e+01
...
Name: y, dtype: float64
没有pandas
:
考虑一下,如果您确实需要数据框或系列。您可以将其保留在
>>> xs = np.arange(51)
>>> ys = np.exp(xs)
,然后用整数ys
,0
,1
,...索引到2
以得到exp(0)
,{{1 }},exp(1)
,...
答案 3 :(得分:1)
只需创建一个元组列表并将其传递给DataFrame
构造函数即可:
df = pd.DataFrame([(i, np.exp(i)) for i in np.linspace(0,50)], columns=['x', 'y'])
输出
x y
0 1.000000e+00
1 2.718282e+00
2 7.389056e+00
...
答案 4 :(得分:1)
答案 5 :(得分:1)
简单地:
代码:
import pandas as pd
import numpy as np
x = np.linspace(0,50)
y = np.exp(x)
df = pd.DataFrame({'x': x, 'y': y})
答案 6 :(得分:1)
您要寻找的是[np.concatenate][1]
。
因此,在您的示例中,代码应为
import numpy as np
x = np.linspace(0,50)
y = np.exp(x)
z = np.concatenate((x.reshape(1,-1),y.reshape(1,-1))).T
print(z.shape)
# (2,50)