首页 > 其他 > 详细

numpy增加维度、删除维度

时间:2020-04-03 22:01:11      阅读:694      评论:0      收藏:0      [点我收藏+]

楔子

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

删除一个维度

import numpy as np
arr = np.array([[[1, 2, 3], [2, 3, 4]]])
print(arr)
"""
[[[1 2 3]
  [2 3 4]]]
"""
print(arr.shape)  # (1, 2, 3)
# 事实上第一个维度我们是不需要的,因为在该维度上数组的长度是1

# 删除第1个维度,我们看到已经改变了
# 这个操作不会改变原来的数据
print(np.squeeze(arr, 0))
"""
[[1 2 3]
 [2 3 4]]
"""

但是注意:只有数组长度在该维度上为1,那么该维度才可以被删除。

如果不是1,那么删除的话会报错

import numpy as np
arr = np.array([[[1, 2, 3], [2, 3, 4]]])

print(arr.shape)  # (1, 2, 3)

try:
    # 删除第二个维度,显然在第二个维度上数组的长度是2,不是1
    # 所以它不能被删除
    print(np.squeeze(arr, 1))
except Exception as e:
    print(e)  # cannot select an axis to squeeze out which has size not equal to one

增加一个维度

删除只能删除数组长度为1所对应的维度,同理添加也是添加一个数组长度为1对应的维度

import numpy as np
arr = np.array([[1, 2, 3], [2, 3, 4]])

print(arr.shape)  # (2, 3)

# 很好理解
print(np.expand_dims(arr, 0).shape)  # (1, 2, 3)
print(np.expand_dims(arr, 1).shape)  # (2, 1, 3)
print(np.expand_dims(arr, 2).shape)  # (2, 3, 1)

arr = np.array([1, 2, 3])
print(np.expand_dims(arr, 0))
"""
[[1 2 3]]
"""
print(np.expand_dims(arr, 1))
"""
[[1]
 [2]
 [3]]
"""

numpy增加维度、删除维度

原文:https://www.cnblogs.com/traditional/p/12629050.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!