Python 如何将ndarray转换为数组?
我正在使用pandas.Series和np.ndarray 代码是这样的Python 如何将ndarray转换为数组?,python,numpy,multidimensional-array,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 >>> 我试着把它转换成一维数组: >>> tt = t.reshape((
>>> t
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> pandas.Series(t)
Exception: Data must be 1-dimensional
>>>
我试着把它转换成一维数组:
>>> tt = t.reshape((1,-1))
>>> tt
array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
tt仍然是多维的,因为存在双'['
那么如何将数据数组真正转换为数组呢?
搜索后,。但是在我的情况下,它们的工作方式不同。使用:
编辑:如前所述,在任何情况下都会返回输入的副本。要避免复制,请使用@Ophion建议的.ravel
。另一种方法是使用:
ravel
相对于flatte
的重要性在于ravel
仅在必要时复制数据,通常返回视图,而flatte
将始终返回数据的副本
要使用“重塑”展平阵列,请执行以下操作:
tt = t.reshape(-1)
这是解决双括号问题的唯一方法,即转换为nd矩阵的1D数组。
.Flatte
返回一个副本,而不是视图,因此它通常不应该是您的第一选择。@Jaime:谢谢,我已经注意到了。(和+1对Ophion指出。ravel
…显然,我没有充分使用NumPy。)
>>> np.zeros((3,3)).ravel()
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.])
tt = t.reshape(-1)
tt = array([[ 0., 0., 0., 0., 0., 0., 0., 0., 0.]])
oneDvector = tt.A1