numpy怎么增加维度和删除维度(numpy,开发技术)

时间:2024-05-02 13:27:51 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    numpy%E6%80%8E%E4%B9%88%E5%A2%9E%E5%8A%A0%E7%BB%B4%E5%BA%A6%E5%92%8C%E5%88%A0%E9%99%A4%E7%BB%B4%E5%BA%A6

在 TensorFlow 中,可以给一个 tensor 增加一个维度、删除一个维度,那么在 Numpy 中该怎么呢?

先来看看如何增加一个维度:

但是注意:只有数组长度在该维度上为 1,那么该维度才可以被删除。如果不是1,那么删除的话会报错。

删除只能删除数组长度为 1 所对应的维度,同理添加也是添加一个维度也只是让数组在这个维度上的长度变成 1,因为数组本来不存在这个维度的,但是我们强行加上了一个维度,那么数组在这个维度上的长度只能是 1。

以上就实现了数组维度的删除和增加,因为数组的元素是固定的,所以在删除维度和增加维度时,数组在该维度上的长度必须是 1。

另外,变化维度还可以使用 reshape,比如 arr 的维度是 (2, 1, 3),我们把第二个维度给去掉的话,那么直接 arr.reshape((2, 3)) 即可,增加维度也是同理,只要变化维度前后的元素个数不变即可。

最后,增加维度还有一种做法,但用的不多,举个栗子:

说实话,改变数组的维度不是特别常见,更常见的是删除数组的一行或者一列,举个栗子:

这种需求相对来说更加常见一些,那么应该怎么做呢?我们来看一下。

首先是删除:

删除列的话也是同理,只需要将 axis=0 换成 axis=1 即可,注意:如果不指定 axis 或者 axis 指定为 None,那么会 np.delete 会将传递的数组扁平化(变成一维数组),然后进行删除。举个栗子:

如果想增加一行或一列的话,要怎么做呢?

如果不指定 axis,那么仍然会将传递的数组扁平化,然后进行追加:

append 默认是在尾部进行追加,并且还要求维度要匹配,不是很方便。所以这里更推荐 insert 函数:

我们看到 insert 比 append 要方便很多,并且功能也更加强大一些,并且 append 完全可以使用 insert 实现,举个栗子:

最后,如果 insert 不指定维度,那么也是会先将数组扁平化,然后在进行 insert,举个栗子:

本文:numpy怎么增加维度和删除维度的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:arcgis js完整悬停效果实现demo的方法是什么下一篇:

6 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18