1

我想SFrameNumPy数组创建一个。

我特别想要的是:

np.arange(16).reshape(4, 4) 

=>

+----+----+----+----+
| 0  | 1  | 2  | 3  |
+----+----+----+----+
| 0  | 1  | 2  | 3  |
| 4  | 5  | 6  | 7  |
| 8  | 9  | 10 | 11 |
| 12 | 13 | 14 | 15 |
+----+----+----+----+
[4 rows x 4 columns]

如果我做:

print SFrame(np.arange(16).reshape(4, 4))

我得到:

+--------------------------+
|            X1            |
+--------------------------+
|   [0.0, 1.0, 2.0, 3.0]   |
|   [4.0, 5.0, 6.0, 7.0]   |
|  [8.0, 9.0, 10.0, 11.0]  |
| [12.0, 13.0, 14.0, 15.0] |
+--------------------------+
[4 rows x 1 columns]

NumPy如果我将数组转换为 aPandas DataFrame并从 the转换为 a ,我可以得到我想要Pandas DataFrameSFrame

print SFrame(pd.DataFrame(np.arange(16).reshape(4, 4)))

+----+----+----+----+
| 0  | 1  | 2  | 3  |
+----+----+----+----+
| 0  | 1  | 2  | 3  |
| 4  | 5  | 6  | 7  |
| 8  | 9  | 10 | 11 |
| 12 | 13 | 14 | 15 |
+----+----+----+----+
[4 rows x 4 columns]

我的问题是:

如何以读取数组的方式SFame从数组创建一个(数组=>具有行和列),但不用作中间步骤?NumPyPandas DataFrameNxMDataFrameNMPandas

4

1 回答 1

1

我也有这个问题,我也发现在 SFrame 中很难进行多索引。

可能是愚蠢的修复,但仍然可行;

from graphlab import SFrame,SArray

data=np.arange(16).reshape(4, 4).T 
sf=SFrame(map(SArray,data)

应该导致这样的事情

X1  X2  X3  X4
0   1   2   3
4   5   6   7
8   9   10  11
12  13  14  15
于 2017-05-05T02:14:56.780 回答