羟基numpy自学(三)

Numpy 矩阵的合并

  • 垂直合并:
np.vstack((array1, array2, array3, ...))

注意:array1和array2的长度要一致。

  • 水平合并:
np.hstack((array1, array2, array3, ...))

注意:array1和array2的宽度要一致。
集中放图:
图一

  • 神奇的np.concatenate:
    这个语法可以通过参数axis的设定决定是垂直合并还是水平合并,axis = 0,垂直合并, axis = 1,水平合并。
np.concatenate((array1, array2, ...), axis = 1 or 0)

矩阵的升阶:

  • 一维矩阵不能进行array.T的操作,如要进行矩阵转置,就要先将矩阵升维了:
array = array[np.newaxis, :]
or
array = array.[:, np.newaxis]

我们先定义一个一维矩阵array:
tyu
发现其并不能进行矩阵的转置。
接下来我们对array进行升维:
图2
就能进行转置操作了。
注意:请仔细区别冒号的位置和对应的结果。

矩阵的分割

  • 垂直分割:
arry2, array3, array4 , ... , arrrayn = np.vsplit(array, n)
  • 水平分割:
array2, array3, ... , arrayn = np.hsplit(array, n)
  • 参数决定分割类型:
array2, array3, ... , arrayn = np.split(array, n, axis = 0 or 1)

axis = 0为垂直分割,axis = 1为水平分割。

  • 上述三种方法都有一个缺陷,只能进行等分分割。
    如果要进行不等分分割,下面有这么一个函数:
np.array_split(array, n, axis = 0 or 1)

矩阵的两种拷贝方式

  • 浅拷贝:即两个标签指向同一块内存地址
    运行以下代码:
array1 = np.array([1, 2, 3])
array2 = array1
array2[0] = 10
print(array1)

结果为:
11
即array2改变,array1同样改变,它们本来就是指向的同一个内存地址嘛。

  • 深拷贝:即为标签新建一块内存区域存放copy的数据
array1 = np.array([1, 2, 3])
array2 = array1.copy()
array2[0] = 10
print(array1)

输出结果:
111
array1的值并没有改变。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值