numpy中的操作(二)

一、数组的变化

1、变换数组的形态(一维转二维)

# 创建一维数组
arr = np.arange(12)
# print(arr)
# 一维转二维
arr2 = arr.reshape(3,4)
print(arr2)
print(arr2.ndim)
#[ 0  1  2  3  4  5  6  7  8  9 10 11]
#1
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]]
#2

2、展平数组(二维转一维)

(1)ravel(),横向展平

print(arr2.ravel())
print(arr2.ravel().ndim)
#[ 0  1  2  3  4  5  6  7  8  9 10 11]
#1

(2)flatten(),与ravel的区别是flatten可以选择横向展平或纵向展平

print(arr2.flatten())#默认为‘C',表示按行展平
print(arr2.flatten('F'))#按列展平 传一个参数F
#[ 0  1  2  3  4  5  6  7  8  9 10 11]
#[ 0  4  8  1  5  9  2  6 10  3  7 11]

3、组合

numpy 可以对数组进行组合 组合方式也是横向组合与纵向组合

(1)方法一
①np.hstack((数组1,数组2))

arr3 = arr2*3
print(np.hstack((arr2,arr3)))#横向组合
#[[ 0  1  2  3  0  3  6  9]
# [ 4  5  6  7 12 15 18 21]
# [ 8  9 10 11 24 27 30 33]]

②np.vstack((数组1,数组2))

print(np.vstack((arr2,arr3)))#纵向组合
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]
# [ 0  3  6  9]
# [12 15 18 21]
# [24 27 30 33]]

(2)方法二:np.concatenate((数组1,数组2),axis=?)

print(np.concatenate((arr2,arr3),axis=1))#axis 坐标 只用0,1两种参数 1表示按行 0表示按列
#[[ 0  1  2  3  0  3  6  9]
# [ 4  5  6  7 12 15 18 21]
# [ 8  9 10 11 24 27 30 33]]
print(np.concatenate((arr2,arr3),axis=0))#axis 坐标 只用0,1两种参数 1表示按行 0表示按列
#[[ 0  1  2  3]
# [ 4  5  6  7]
# [ 8  9 10 11]
# [ 0  3  6  9]
# [12 15 18 21]
# [24 27 30 33]]

4、数组的分割

(1)方法一

①横向分割

print(np.hsplit(arr2,2))#横向切割,等分
#[array([[0, 1],
 #      [4, 5],
 #      [8, 9]]), array([[ 2,  3],
 #      [ 6,  7],
 #      [10, 11]])]

②纵向分割

print(np.vsplit(arr2,3))#纵向切割,等分
#[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

(2)方法二:split(数组,个数,axis=?)

print(np.split(arr2,2,axis=1))
#[array([[0, 1],
#       [4, 5],
#       [8, 9]]), array([[ 2,  3],
#       [ 6,  7],
#       [10, 11]])]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值