Python中Numpy(2,numpy的基本操作(级联,维度转换,切分,副本))

1. ndarray的基本操作

# 1.索引与切片  和列表的是一个道理
n2 = np.arange(0,10,1)
print(n2)
print(n2[::-1])  #反转
print(n2[::2])   #按步长取数据

#2. 变形  使用reshape函数,注意参数是一个tuple!
n3 = n2.reshape((5,2))
print(n3)
# 3. 级联 np.concatenate() 即就是将两个数组连接起来
# 级联的参数是列表:一定要加中括号或小括号
# 维度必须相同,形状相符
n1 = np.random.randint(0,10,size=(5,5))
print(n1)
# 将n1和n1连接起来,axis=0为列连接,axis=1为行连接
n2 = np.concatenate((n1,n1),axis=0)
print(n2)

# 4.转换维度
n3 = np.random.randint(0,10,10)
print(n3)
# 将水平的转化为垂直的
n4 = np.vstack(n3)
print(n4)
# 将垂直的转化为水平的
n5 = np.hstack(n4)
print(n5)

# 5.切分
# 5.1 np.split()
n6 = np.random.randint(0,255,size=(7,7))
print(n6)
# 把n6数组从第二个到第三个切割开来
# (数组角标从0开始,左闭右开),前面是部分,指定的切割内容是一部分,后面是一部分
# 里面的axis默认等于0,即对“行”进行切分
n7 = np.split(n6,(2,4))
print(n7)
# 参数axis=1, 即对“列”进行切分
n8 = np.split(n6,(2,4),axis=1)
print(n8)
# 5.2 np.vsplit()  # 切分行
n9 = np.vsplit(n6,(1,3))
print(n9)
# 5.3 np.hsplit()  # 切分列
n9 = np.vsplit(n6,(1,3))
print(n9)
# 6 副本 copy()
n = np.array([1,2,3,4])
n1 = n    # 把n的值直接赋值给n1
n1[2] = 1024    #修改n1里面的一个值
print("n2为:",n1)
print("n为:",n)
# n2为: [   1    2 1024    4]
# n为: [   1    2 1024    4]
# 我们会发现用等号直接赋值的方式时,修改n1,n里面的数也会被修改
# 为防止上述的情况出现,用copy()
n3 = np.array([1,2,3,4])
n4 = n.copy()  #使用 copy()函数创建副本
n4[2] = 1024
print("n3为:",n)
print("n4为:",n3)
# n3为: [   1    2 1024    4]
# n4为: [1 2 3 4]

猜你喜欢

转载自blog.csdn.net/wei18791957243/article/details/83756910
今日推荐