【数据分析numpy】(3)数组的形状与连接

本文介绍了如何使用numpy进行数组形状的改变,包括shape属性的直接修改、reshape函数创建新数组、newaxis操作增加维度、squeeze移除多余维度以及转置功能。同时涵盖了数组连接的concatenate、vstack、hstack方法,以及拉平操作flatten和ravel。
摘要由CSDN通过智能技术生成

数组形状

1、改变数组形状.shape,.reshape

区别:.shape = 2,5 在原有数组上修改
.reshape(1,10)重新建立数组

2、新增维度np.newaxis

3、去除多余维度.squeeze()

4、转置 .transpose()

数组的连接

1、连接两个数组

 .concatenate(),
 np.vstack,
 np.hstack

2、拉平

.flatten()
.ravel()
import numpy as np

'''
数组形状
1、改变数组形状.shape,.reshape
  区别:.shape = 2,5 在原有数组上修改
       .reshape(1,10)重新建立数组
2、新增维度np.newaxis
3、去除多余维度.squeeze()
4、转置 .transpose()
'''
array_0 =np.arange(10) #构造有序数组
print('array_0为:',array_0)
# >> array_0为: [0 1 2 3 4 5 6 7 8 9]
print('array_0 shape 为:',array_0.shape)
# >> array_0 shape 为: (10,)

# 改变数组形状
array_0.shape = 2,5 #将数组形状变为2行5列
print('array_0为:',array_0)
# >> array_0为: [[0 1 2 3 4]
#  [5 6 7 8 9]]
array_1 = array_0.reshape(1,10) #将数组形状变为1行10列
print('array_1为:',array_1)
# >> array_1为: [[0 1 2 3 4 5 6 7 8 9]]

#2、新增维度np.newaxis
print('array_1形状:',array_1.shape)
# >> array_1形状: (1, 10)
array_2 = array_1[np.newaxis,:]
print('array_2形状:',array_2.shape)
# >> array_3形状: (10,)

#2、去除多余维度squeeze
array_3 = array_2.squeeze()
print('array_3形状:',array_3.shape)
# >> array_2形状: (1, 1, 10)

#4、转置
array_3.shape=2,5
print('转置后的array_3为:',array_3.transpose())
# >> 转置后的array_3为: [[0 5]
#  [1 6]
#  [2 7]
#  [3 8]
#  [4 9]]
'''
数组的连接
1、连接两个数组.concatenate(),np.vstack,np.hstack
2、拉平
    .flatten()
    .ravel()
'''
a = np.array([[132,54,64],[423,5245,234]])
b = np.array([[143,432,53],[588,345,253]])

#连接a,b .concatenate(),注意要以元组形式传入
c = np.concatenate((a,b)) #以元组格式传入,所以两个括号
print('连接a,b:',c)
# >> 连接a,b: [[ 132   54   64]
#  [ 423 5245  234]
#  [ 143  432   53]
#  [ 588  345  253]]

##行连接a,b
print(np.vstack((a,b)))
# >> [[ 132   54   64]
#  [ 423 5245  234]
#  [ 143  432   53]
#  [ 588  345  253]]


# 指定维度连接
c1 = np.concatenate((a,b),axis=1)
print('列连接:',c1)
# >> 列连接: [[ 132   54   64  143  432   53]
#  [ 423 5245  234  588  345  253]]

#列连接a,b
print(np.hstack((a,b)))
# >>  [[ 132   54   64  143  432   53]
#  [ 423 5245  234  588  345  253]]

#拉平
#.flatten()
print(a.flatten())
# >> [ 132   54   64  423 5245  234]

#.ravel()
print(b.ravel())
# >> [143 432  53 588 345 253]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值