Numpy学习笔记(四):如何将数组升维、降维和去重

文章目录

    • 降维和去重
      • 方法一
      • 方法二
    • 升维
      • 方法一
      • 方法二

降维和去重

方法一

通过chain.from_iterable来进行转换

a = [[1, 2, '3'], [9, 3, 7], [8, 15, 10]]
from itertools import chain
import string as str
a_new=[]
# 将二维数组里面的字符型转换为整形
for i in a:
    a=list(map(int,i))
    a_new.append(a)
print(list(chain.from_iterable(a_new)))

运行结果在这里插入图片描述

方法二

升维用np.expand_dims
降维用np.squeeze()
去重用np.unique()

import numpy as np
a=np.array([1,2,2,1,3,4,5,6,7])
# 升维
b=np.expand_dims(a,axis=0)
print(a.shape)
print(b.shape)
c=np.expand_dims(b,axis=0)
print(c.shape)
# 降维
d=np.squeeze(c,axis=0)
print(d.shape)
# 去重复
e=np.unique(a)
"""去重方法一"""

print('1.去重后',e)
"""去重方法二"""
print('2.去重后',list(set(a)))
"""去重方法三"""
def quchong(y):
    y.sort()
    last=y[-1]
    for i in range(len(y)-2,-1,-1):
        if last==y[i]:
            del y[i]
        else:
            last=y[i]
    return y
a1=[]
for i in range(len(a)):
    a1.append(a[i])
print('3.去重后',quchong(a1))

运行结果
Numpy学习笔记(四):如何将数组升维、降维和去重_第1张图片

升维

方法一

通过np.expand_dims
比如说直接image=np.expand_dims(image,axis=0)
在0维度增加一维。

方法二

通过np.newaxis来处理
比如说
image=image[np.newaxis,:,:].astype(np.float32)
可以完成图片从四维到五维,三维到四维
如果想直接从三维到五维可以使用
image=image[np.newaxis,np.newaxis,:,:].astype(np.float32)
都是从0维度增加,如果想要从其它维度增加只需要将np.newaxis放到你想要放的位置即可。

你可能感兴趣的:(#,Numpy,numpy,python,源)