使用Python 2。
我需要将数组拆分为行和列,但似乎没有获得练习中要求的解决方案
import numpy as np
a = np.array([[5, 0, 3, 3],
[7, 9, 3, 5],
[2, 4, 7, 6],
[8, 8, 1, 6]])
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有这些功能
def _rows(a):
print("array:"+ str(a[:,]))
_rows(a)
def _col(a):
alt=a.T
print ("array:"+ str(alt[:,]))
_col(a)
Run Code Online (Sandbox Code Playgroud)
但是我需要返回一个列表,当我使用该list()函数时,它会将每个字符分开
我需要的结果是:
[array([5, 0, 3, 3]), array([7, 9, 3, 5]), array([2, 4, 7, 6]), array([8, 8, 1, 6])]
[array([5, 7, 2, 8]), array([0, 9, 4, 8]), array([3, 3, 7, 1]), array([3, 5, 6, 6])]
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令将行和列解压缩为列表:
res1, res2 = [*a], [*a.T]
Run Code Online (Sandbox Code Playgroud)
print(res1)
[array([5, 0, 3, 3]),
array([7, 9, 3, 5]),
array([2, 4, 7, 6]),
array([8, 8, 1, 6])]
print(res2)
[array([5, 7, 2, 8]),
array([0, 9, 4, 8]),
array([3, 3, 7, 1]),
array([3, 5, 6, 6])]
Run Code Online (Sandbox Code Playgroud)
扩展的可迭代解包是在python 3.0中引入的,对于较旧的版本,您可以像@ U9-Forward的答案中那样调用列表构造函数