我从文件中读取与loadtxt这样的
data = loadtxt(filename) # id x1 y1 x2 y2
Run Code Online (Sandbox Code Playgroud)
data 看起来像
array([[ 4. , 104.442848, -130.422137, 104.442848, 130.422137],
[ 5. , 1. , 2. , 3. , 4. ]])
Run Code Online (Sandbox Code Playgroud)
然后我可以减少data属于某个id数字的行:
d = data [ data[:,0] == id]
Run Code Online (Sandbox Code Playgroud)
这里的问题是数据只包含一行.
所以我的问题是如何检查我的数组的二维性data?
我试过检查
data.shape[0] # num of lines
Run Code Online (Sandbox Code Playgroud)
但对于单行我会得到类似的东西(n, ),所以这不会奏效.
任何想法如何正确地做到这一点?
unu*_*tbu 13
data.ndim给出了数组的维度(numpy调用的数量axes).
正如您已经观察到的,当数据文件只有一行时,np.loadtxt
返回一维数组.当数据文件有多行时,np.loadtxt
返回一个二维数组.
确保data2D 的最简单方法是传递ndmin=2给loadtxt:
data = np.loadtxt(filename, ndmin=2)
Run Code Online (Sandbox Code Playgroud)
该ndmin参数是在NumPy 1.6.0版中添加的.对于旧版本,您可以使用np.atleast_2d:
data = np.atleast_2d(np.loadtxt(filename))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8617 次 |
| 最近记录: |