numpy数组计算基础(2)

1 数组形态改变

创建一个数组:

arr = np.arange(16)  生成一个一维数组
print('arr:',arr)
print('类型:',type(arr))
print('形状:',arr.shape)

可以通过shape和reshape求更改他的形状,不同的是reshape生成一个新的数组,二shape是在原来数组的基础上进行更改。
举例说明:
直接更改 通过shape直接指定形状。—元组

arr.shape = (4,4)
print(arr

)
reshape更改,返回新的数组

arr_new = arr.reshape(4,4)
print(arr_new)
print('类型:',type(arr_new))
print('形状:',arr_new.shape)

展开一个高纬度的数组,利用的方式有:reval或者flatten
举例:
#创建一个高纬度数组

arr = np.arange(16).reshape(4 ,4)
print(arr)
print("arr shape" ,arr.shape)#打印出形状。
ravel展平数组
# arr_new = np.ravel(arr)
# arr_new = arr.ravel()
# print(arr_new)

通过flatten展开数组
参数:默认参数是c 是按行展开。f参数是按列展开

arr_new1 = arr.flatten('c')
print(arr_new1)
arr_new = arr.flatten('f')
print(arr_new)

2 拼接数组

import numpy as np
# 创建数组
arr1 = np.arange(6).reshape(2,3)
arr2 = np.array([[1,2,3],[2,3,4]])
print(arr1)
print(arr2)

横向拼接数组:
可以通过hstack直接横向凭借,也可以利用concatenate将参数设为1拼接

# arr_new = np.hstack((arr1,arr2))
# arr_new = np.concatenate((arr1,arr2),axis=1)
# print(arr_new)
# print(arr_new)

# 纵向拼接

可以通过vstack直接纵向向凭借,也可以利用concatenate将参数设0为拼接

# arr_new = np.vstack((arr1,arr2))
# arr_new = np.concatenate((arr1,arr2),axis=0)
# print(arr_new)
# print(arr_new)

concatenate 参数axis为1,代表列,横轴方向
concatenate 参数axis为0 代表行,纵轴方向。
拼接的过程中,维度需一致 # 如果是横向拼接,必须保持行一致,
如果是纵向拼接,必须保持列数一致

3拆分数组

import numpy as np
arr = np.arange(16).reshape(4,4)
print('arr:' ,arr)
# 横向拆分 平分
# arr1,arr2 = np.hsplit(arr,2)
# arr_new = np.split(arr,4,axis=1)
# print(arr_new)
# print('arr1',arr1)
# print('arr2'arr2)
# 纵向拆分  平分
# arr1,arr2 = np.vsplit(arr,2)
# arr_new = np.split(arr,4,axis=0)
# print(arr_new)
# print('arr1',arr1)
# print('arr2',arr2)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值