如果输入是元组,numpy 数组是否会丢失维度?

我手动定义 numpy 数组的首选方法是在 numpy 的用户指南中看到这样做后输入元组列表。它使跟踪括号变得更容易:

https://img1.sycdn.imooc.com/658e84090001e26d10020169.jpg

但进一步搜索文档,我不知道这是否被视为标准,或者是否有特定的用例。总的来说,它们的工作方式似乎与在列表列表中输入完全相同,除非尝试显式定义二维数组。它自动变成一维数组,而使用相同语法的列表列表则变成二维数组。


在下面的代码中,我希望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)


开满天机
浏览 100回答 1
1回答

米琪卡哇伊

在Python中,单元素元组实际上需要逗号,而不仅仅是括号。没有逗号,(1) == 1. 为了获得您想要的输出,您需要:b1 = np.array([(1,), (1,)]) b1.shape # (2, 1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python