Numpy学习笔记——多维数组

1.1 reshape不改变值改变数组形状

import numpy as np
a = np.arange(10).reshape(2,5)  #[[0 1 2 3 4] [5 6 7 8 9]]
b = a.reshape(10)               #[0 1 2 3 4 5 6 7 8 9]
c=a.flatten()                   #[0 1 2 3 4 5 6 7 8 9]

a.flatten():将一个多维数组展开变成一个一维数组。不清楚数组中有多少个数,仍然想转为一维时可以使用。

1.2 数组计算

① 形状一样的数组a、b,可以直接使用a+b或a-b,对应位置的数字进行计算

import numpy as np
a = np.arange(10).reshape(2,5)
b = np.random.randn(2,5)
print(a+b)
print(a-b)

② 一维和多维数组,在某一维度上形状一样,仍然按位置计算

import numpy as np
a = np.arange(6)
b = np.arange(24).reshape(4,6)
print(a)        #[0 1 2 3 4 5]
print(b)        #[[0 1 2 3 4 5][6 7 8 9 10 11][12 13 14 15 16 17][18 19 20 21 22 23]]
print(b-a)      #[[0 0 0 0 0 0][6 6 6 6 6 6][12 12 12 12 12 12][18 18 18 18 18 18]]

1.3 广播规则

广播原则:如果两个数组的后缘维度(从末尾开始算起的维度)的轴长相符,或其中一方的长度为1,则认为它们是广播兼容的。广播会在缺失和(或)长度为1的维度上进行。

① 两个数组的维数不相等,但是它们的后缘维度的轴长相符

② 数组维度相同,其中有个轴为1

③ 上面两种机制相结合

(3,2,2)与(2,1)是可以相加的

import numpy as np
a = np.arange(12).reshape(3,2,2)
b = np.arange(2).reshape(2,1)
>>> [[[ 0  1]
  [ 3  4]]

 [[ 4  5]
  [ 7  8]]

 [[ 8  9]
  [11 12]]]

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值