Numpy

Numpy

修改

Numpy有着严格的数据类型,umpy数组类型取决于数组中的每一个元素(和优先级有关,如 int 和 float 类型同时存在,则数组类型为 float。
但是可以使用构造函数 dtype 来指定一个类型

切片

切片操作中,上限元素是不被包含在内的,有着左右之分,正数为左负数为右

a = [1, 2, 3, 4]
print(a[0:3])

结果为

[1, 2, 3]

可以看出 (上限 - 下限 = 结果长度)

还可以进行参数的省略
array[左边位置:右边位置],省略后默认左边从第一个,右边为最后一个

a = [1, 2, 3, 4]
print(a[:2])
print(a[:-3])

结果为

[1, 2]
[1]

可以进行等间隔操作,间隔距离为第三个参数

a = [1, 2, 3, 4]
print(a[::2])

结果为

[1, 3]

在多维数组中,可以在不同维度进行和一维相同的操作,举例一个矩阵
将各种颜色取出来的代码如下

a = np.arange(25).reshape(5, 5)
yellow = a[4, :]
red = a[::, 1::2]
blue = a[1::2,:3:2]

结果为

[20 21 22 23 24]

[[ 1  3]
[ 6  8]
[11 13]
[16 18]
[21 23]]

[[ 5  7]
[15 17]]

切片和索引的区别

索引会导致维度的丢失
切片则会保留维度

a = np.array([1, 3, 4, 5])
print(a[2])
print(a[2:3])

结果

4  //维度丢失了,只剩下一个值
[4]  //维度还在,仍旧是一个数组

Fancy Indexing

提供了一种选取数组元素的方式
Eg1

a = np.array([3, -1, -2, 4, -6, 8])
print(a < 0)

Result

[False  True  True False  True False]

Eg2

mask = a < 0
print(a[mask])

Result

[-1 -2 -6]

Eg3

index = [0, 1, 3]
a[index]

Result

array([3, 0, 4])

Fancy Indexing 产生的是数组的一个副本,而切片只是原数组的一个视图

a = np.array([3, -1, -2, 4, -6, 8])
b = a[[0, 1, 2]]
b[b < 0] = 0
print(b)
print(a)
b = a[:3]
b[b < 0] = 0
print(b)
print(a)

Result

[3 0 0]
[ 3 -1 -2  4 -6  8]

[3 0 0]
[ 3  0  0  4 -6  8]

维度表示

在这里插入图片描述
新维度永远在第一个,最后一个维度永远是列

计算

元素服从逐元素计算方式

a = np.array([1, 4, 5, 10])
b = np.array([2, 3, 6 ,8])
print(a > b)
print(a + b)
print(a * b)

Result

[False  True False  True]
[ 3  7 11 18]
[ 2 12 30 80]

axis轴关键字

a = np.array([[1, 2, 3, 4],
              [5, 6, 7,  8]])
a.sum(axis = 0)

Result

array([ 6,  8, 10, 12])

a = np.array([[1, 2, 3, 4],
              [5, 6, 7,  8]])
a.sum(axis = 1)

Result

array([10, 26])

a是一个 (2x4) 的矩阵,axis = 0,可以视作丢失第一个维度,所以结果有四个值
同理axis = 1结果有两个值

乘法

矩阵相乘:运算规则同矩阵乘法
向量相乘:点积和

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值