Numpy基础2(改变数组的形状(维度)、数组的组合和分割)

1 改变数组形状

# 创建一维数组
arr = np.arange(12)
print("创建的一维数组arr为:",arr)
			创建的一维数组arr为: [ 0  1  2  3  4  5  6  7  8  9 10 11]
arr_new = arr.reshape(3,4)
print("新的一维数组arr_new为:",arr_new)
			新的一维数组arr_new为: [[ 0  1  2  3]
								 [ 4  5  6  7]
								 [ 8  9 10 11]]
arr_new_ravel = arr_new.ravel()
print("使用ravel展平新的一维数组arr_new后:",arr_new_ravel)
			使用ravel展平新的一维数组arr_new后: [ 0  1  2  3  4  5  6  7  8  9 10 11]
arr_new_flatten = arr_new.flatten()
print("使用flatten横向展平新的一维数组arr_new后:",arr_new_flatten)
			使用flatten横向展平新的一维数组arr_new后: [ 0  1  2  3  4  5  6  7  8  9 10 11]
arr_new_flatten_F = arr_new.flatten("F")
print("使用flatten纵向展平新的一维数组arr_new后:",arr_new_flatten_F)
			使用flatten纵向展平新的一维数组arr_new后: [ 0  4  8  1  5  9  2  6 10  3  7 11]

2 组合数组

# 创建两个数组
arr1 = np.arange(12).reshape(3,4)
				arr1: 	[[ 0  1  2  3]
					 	[ 4  5  6  7]
 						[ 8  9 10 11]]
arr2 = np.arange(9).reshape(3,3)
print("使用hstack函数实现数组横向组合arr1、arr2后:",np.hstack((arr1,arr2)))
			使用hstack函数实现数组横向组合arr1、arr2后: [[ 0  1  2  3  0  1  2]
													 [ 4  5  6  7  3  4  5]
													 [ 8  9 10 11  6  7  8]]
arr3 = arr1.reshape(4,3)
print("使用vstack函数实现数组纵向组合arr3、arr2后:",np.vstack((arr3,arr2)))					
			使用vstack函数实现数组纵向组合arr3、arr2后: [[ 0  1  2]
													 [ 3  4  5]
													 [ 6  7  8]
													 [ 9 10 11]
													 [ 0  1  2]
													 [ 3  4  5]
													 [ 6  7  8]]
print("使用concatenate函数实现数组横向组合",np.concatenate((arr1,arr2),axis=1))
			使用concatenate函数实现数组横向组合 [[ 0  1  2  3  0  1  2]
											[ 4  5  6  7  3  4  5]
											[ 8  9 10 11  6  7  8]]
print("使用concatenate函数实现数组纵向组合",np.concatenate((arr3,arr2),axis=0))
			使用concatenate函数实现数组纵向组合 [[ 0  1  2]
											 [ 3  4  5]
											 [ 6  7  8]
											 [ 9 10 11]
											 [ 0  1  2]
											 [ 3  4  5]
						 					 [ 6  7  8]]

3 切割数组

print("使用hsplit函数实现数组横向分割arr1成2列:",np.hsplit (arr1,2))      #竖着切
				使用hsplit函数实现数组横向分割arr1成2列: [array([[0, 1],   
      														 [4, 5],
      														 [8, 9]]),
      												 array([[ 2,  3],
       														 [ 6,  7],
      														 [10, 11]])]
print("使用vsplit函数实现数组纵向分割arr1成3行:",np.vsplit (arr1,3))   # 横着切 
				使用vsplit函数实现数组纵向分割arr1成3行: [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
print("使用split函数实现数组横向分割arr1成2列:",np.split(arr1,2,axis=1))  # 竖着切
				使用split函数实现数组横向分割arr1成2列: [array([[0, 1],
													       [4, 5],
													       [8, 9]]), 
													 array([[ 2,  3],
													       [ 6,  7],
													       [10, 11]])]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值