数组复制 修改维度 拼接

  • 切片数组的复制
  • 浅拷贝
  • 深拷贝 np.copy()
import numpy as np

a = np.arange(1, 13).reshape((3, 4))
print(a)

# 通过切片获取的sub_a是新获得的数组,即使赋值给新币那辆,但还是原来数组的视图
# 如果修改切片数组中元素的值,会影响原来的数组
sub_a = a[:2, :2]
print(sub_a)
sub_a[0] = 10
print(sub_a)
print(a)


# 可以使用numpy中的copy方法实现,
# 深拷贝
sub_aa = np.copy(a[:2, :2])
sub_aa = 100
print(sub_aa)
print(a)
  • 修改数组维度
  • 一维到多维
  • 多维到一维 reshape ravel flatten
import numpy as np

a = np.arange(1, 25)
print(a)


# def reshape(self, shape, order='C'):
b = a.reshape(4, 6)
print(b)
# 修改为四块两行三列
c = a.reshape(4, 2, 3)
print(c)

# np.reshape(数组, 维度) 六行四列
d = np.reshape(a, (6, 4))
print(d)
# 两块三行四列
f = np.reshape(a, (2, 3, 4))
print(f)
# 多维数组转换为一维reshape ravel flatten
f = f.reshape(-1)
print(f)
f = f.ravel()
print(f)
f = f.flatten()
print(f)
  • 拼接
  • hstack vstack concatenate
  • 一维 二维 三维的concatenate拼接操作
import numpy as np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[11, 12, 13], [14, 15, 16]])
print(a)
print(b)

# hstack进行水平拼接
r = np.hstack([a, b])
# r = nconp.hstack((a, b))
print(r)
# vstack进行竖直方向拼接
# r = np.vstack([a, b])
r = np.vstack((a, b))
print(r)
# concatenate链接沿现有轴的数组序列,默认垂直方向拼接axis
# r = np.vstack([a, b])
r = np.concatenate((a, b), axis=0)
print(r)
# 二维数组两个轴 axis=0 axis=1
r = np.concatenate((a, b), axis=1)
print(r)
# 三维数组两个轴 axis=0 axis=1 axis=2
a = np.arange(1, 13).reshape(1, 2, 6)
b = np.arange(101, 113).reshape(1, 2, 6)
r = np.concatenate((a, b), axis=0)
print(r)

r = np.concatenate((a, b), axis=1)
print(r)

r = np.concatenate((a, b), axis=2)
print(r)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值