Sol*_*ong 27 python numpy multidimensional-array
我正在使用pandas.Series和np.ndarray.
代码是这样的
>>> t
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> pandas.Series(t)
Exception: Data must be 1-dimensional
>>>
Run Code Online (Sandbox Code Playgroud)
我试着把它转换成一维数组:
>>> tt = t.reshape((1,-1))
>>> tt
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
Run Code Online (Sandbox Code Playgroud)
tt仍然是多维的,因为有两倍'['.
那么如何才能真正将ndarray转换为数组呢?
搜索后,它说它们是相同的.但在我的情况下,他们的工作方式并不相同.
Dan*_*iel 28
另一种方法是使用np.ravel:
>>> np.zeros((3,3)).ravel()
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
Run Code Online (Sandbox Code Playgroud)
的重要性ravel比flatten是ravel只复制数据如果需要的话,通常会返回一个视图,而flatten总是返回数据的副本.
要使用重塑来展平数组:
tt = t.reshape(-1)
Run Code Online (Sandbox Code Playgroud)
使用.flatten:
>>> np.zeros((3,3))
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> _.flatten()
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
Run Code Online (Sandbox Code Playgroud)
编辑:正如所指出的,这在每种情况下都会返回输入的副本。为避免复制,请.ravel按照@Ophion 的建议使用。
| 归档时间: |
|
| 查看次数: |
50121 次 |
| 最近记录: |