import numpy as np
# array合并
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 垂直合并
arr3 = np.vstack((arr1, arr2))
print(arr3)
print(arr3.shape)
# 水平合并
arr4 = np.hstack((arr1, arr2))
print(arr4)
print(arr4.shape)
# 合并 通过设置参数 改变行列 axis=0 纵向合并,合并的维度要相同,形状要匹配
# axis=1 横向合并
arr = np.concatenate((arr3, arr3), axis=1)
print(arr)
# 一维的array不能转置
print(arr1)
print(arr1.T)
# 增加维度后 即可以转置 维度加在前面是一行三列
arr1_1 = arr1[np.newaxis, :]
print(arr1_1)
print(arr1)
print(arr1_1.T)
# 维度加在后面是三行一列
arr1_2 = arr1[:, np.newaxis]
print(arr1_2)
# 把数据转化为至少两维的数据 高维度不变
arr1_3 = np.atleast_2d(arr1)
print(arr1_3)
print(arr1_3.T)
print("=" * 50)
# array的分割
ar1 = np.arange(12).reshape(3, 4)
print(ar1)
# axis = 1 按列 axis = 0 按行分
ar2, ar3 = np.split(ar1, 2, axis=1)
print(ar2)
print(ar3)
ar4, ar5, ar6 = np.split(ar1, 3, axis=0)
print(ar4)
print(ar5)
print(ar6)
# np.array_split 函数可以切分的不均匀
ar7, ar8, ar9 = np.array_split(ar1, 3, axis=1)
print(ar7)
print(ar8)
print(ar9)
# 垂直分割 水平分割
print(ar1)
# 按列分
a1, a2 = np.hsplit(ar1, 2)
print(a1)
print(a2)
# 按行分
a3, a4, a5 = np.vsplit(ar1, 3)
print(a3)
print(a4)
print(a5)
print("~" * 60)
# numpy 浅拷贝与深拷贝
arra1 = np.array([1, 2, 3])
# 浅拷贝 二者共享一块内存 修改一个另一个也改变
arra2 = arra1
arra2[0] = 5
print(arra1)
print(arra2)
# 深拷贝 .copy() 修改后 两者数据独立
arra3 = np.array([1, 2, 3])
arra4 = arra3.copy()
arra4[0] = 5
print(arra3)
print(arra4)
numpy
最新推荐文章于 2024-06-20 07:30:00 发布