Geeker_odd 发表于 2021-8-29 11:01:58

数组的轴

请教群里高手:

numpy里的数组是数学上的矩阵吧?所谓的轴又是什么呢?以下代码:

>>> import numpy as np
>>> a = np.array([,,])
>>> a
array([[ 1,2,3,4],
       [ 5,6,7,8],
       [ 7,8,9, 10]])
>>> a.reshape(2,6)
array([[ 1,2,3,4,5,6],
       [ 7,8,7,8,9, 10]])
>>> a
array([[ 1,2,3,4],
       [ 5,6,7,8],
       [ 7,8,9, 10]])
>>> a.reshape(2,-1)
array([[ 1,2,3,4,5,6],
       [ 7,8,7,8,9, 10]])

a.shape (2,6)好理解,但是为什么a.shape(2, -1)一样呢?(shape或reshape)

louxinghao 发表于 2021-8-29 11:39:01

-1 是自动匹配,reshape 指定行数后,-1 的话自动帮你算好列数,其实跟你的 reshape(2, 6)是一样的

Geeker_odd 发表于 2021-8-29 13:08:54

louxinghao 发表于 2021-8-29 11:39
-1 是自动匹配,reshape 指定行数后,-1 的话自动帮你算好列数,其实跟你的 reshape(2, 6)是一样的

我还是有点疑惑:那它这个-1是啥意思?比如2,6很好理解,就是2行6列。但是-1就把我搞晕了

louxinghao 发表于 2021-8-29 13:26:41

Geeker_odd 发表于 2021-8-29 13:08
我还是有点疑惑:那它这个-1是啥意思?比如2,6很好理解,就是2行6列。但是-1就把我搞晕了

这有啥不理解,自动帮你算,你原本是个3*4的数组,一共12个数,排列组合只有行数确定了列数一定能确定啊,a.reshape(2, 5)会报错,a.reshape(2, 7)也会报错,所以你手动输入(2,6)跟它自动计算是一样的啊,指定-1就是自动计算

Geeker_odd 发表于 2021-8-29 16:02:25

louxinghao 发表于 2021-8-29 13:26
这有啥不理解,自动帮你算,你原本是个3*4的数组,一共12个数,排列组合只有行数确定了列数一定能确定啊 ...

懂了,谢谢!
页: [1]
查看完整版本: 数组的轴