我手动定义 numpy 数组的首选方法是在 numpy 的用户指南中看到这样做后输入元组列表。它使跟踪括号变得更容易:但进一步搜索文档,我不知道这是否被视为标准,或者是否有特定的用例。总的来说,它们的工作方式似乎与在列表列表中输入完全相同,除非尝试显式定义二维数组。它自动变成一维数组,而使用相同语法的列表列表则变成二维数组。在下面的代码中,我希望a2具有与 相同的形状b1。他们的不同有什么原因吗?a1 = np.array([1, 1])print(a1.shape) # (2,)a2 = np.array([[1], [1]])print(a2.shape) # (2, 1)b1 = np.array([(1), (1)])print(b1.shape) # (2,)b2 = np.array(((1, 2), (1, -5)))print(b2.shape) # (2, 2)
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
在Python中,单元素元组实际上需要逗号,而不仅仅是括号。没有逗号,(1) == 1
. 为了获得您想要的输出,您需要:
b1 = np.array([(1,), (1,)]) b1.shape # (2, 1)
添加回答
举报
0/150
提交
取消