type
status
date
slug
summary
tags
category
icon
password
什么是ndarray对象
ndarray
的全称是N-Dimension Arrary
,字面意义上其实已经表明了一个ndarray
对象就是一个N
维数组。但要注意的是,ndarray
是同质的。同质的意思就是说 N
维数组里的所有元素必须是属于同一种数据类型的 。 (PS
: python
中的list
是异质的) 。ndarray
对象实例化好了之后,包含了一些基本的属性。比如shape
,ndim
,size
,dtype
。其中:shape
:ndarray
对象的形状,由一个tuple
表示;
ndim
:ndarray
对象的维度;
size
:ndarray
对象中元素的数量;
dtype
:ndarray
对象中元素的数据类型,例如int64
,float32
等。
来看个例子,假设现在有一个
3
行5
列的矩阵(ndarray
)如下:那么该
ndarray
的shape
是(3, 5)
(代表3
行5
列);ndim
是2
(因为矩阵有行和列两个维度);size
是15
(因为矩阵总共有15
个元素);dtype
是int32
(因为矩阵中元素都是整数,并且用32
位整型足够表示矩阵中的元素)。示例代码如下:
1 实例化ndarray对象
最为常用的函数是
array
,zeros
,ones
以及empty
。2 改变ndarray
对象的形状
1
NumPy
为我们提供了一个用来改变ndarray
对象的shape
的函数,叫 reshape
PS
:不管是哪种方式的reshape
,都不会改变原ndarray
的形状,而是将源ndarray
进行深拷贝并进行变形操作,最后再将变形后的数组返回出去。也就是说如果代码是np.reshape(a, (4, 3))
那么a
的形状不会被修改!2 直接改变源
ndarray
的形状,可以使用resize
函数技巧:有的时候懒得去算每个维度上的长度是多少,比如现在有一个
6
行8
列的ndarray
,然后想把它变形成有2
列的ndarray
(行的数量我懒得去想),此时我们可以在行的维度上传个-1
即可3 运算
算术运算
矩阵运算(逐个计算和矩阵乘法)
逐个计算
真正的矩阵乘法运算
4统计
1 简单统计(和,最大最小)
2 根据轴来统计
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fc466f1d4-a794-4e9f-bdf9-13b19f8600bc%2Feb65912d-a5e9-4ceb-ad74-21d0e49ca16d%2FUntitled.png?table=block&id=0a824585-518a-4bd4-bf04-d9f7b9fe7a3a)
PS
:当没有修改axis
时,axis
的值默认为None
。意思是在统计时会把ndarray
对象中所有的元素都考虑在内。5 随机数生成
1 简单随机数
2 概率分布随机数
高斯/正态分布:
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fc466f1d4-a794-4e9f-bdf9-13b19f8600bc%2F5520b976-a0bf-4ecf-b199-24e44dcdd3f4%2FUntitled.png?table=block&id=e6e72a5c-e11e-47ff-8d11-c5e73ed90e6c)
横轴为随机变量的值(在这里可以看成是产生的随机值),纵轴表示随机变量对应的概率(在这里可以看成是随机值被挑选到的概率)
其中normal
函数除了size
参数外,还有两个比较重要的参数就是loc
和scale
,它们分别代表高斯分布的均值和方差。loc
影响的分布中概率最高的点的位置,假设loc=2
,那么分布中概率最高的点的位置就是2
。下图体现了loc
对分布的影响,其中蓝色f
分布的loc=0
,红色分布的loc=5
。
![notion image](https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2Fc466f1d4-a794-4e9f-bdf9-13b19f8600bc%2F6a9ca79f-19d4-491e-b20f-847ffe375b3e%2FUntitled.png?table=block&id=d2d6b70e-56cf-4e42-9671-f6928d0926ea)
3 随机种子
随机数其实就是根据种子算出来的数
6 索引与切片
索引:略
遍历:
切片:
切片的语法,第一个数字是起始位置(默认为0),第二个数字是结束位置(默认为数组的最大索引值),第三个是抽取元素的间隔(默认为1,取-1为倒序)
- 作者:MasterYe
- 链接:https://www.masterye.xyz//article/basicNumpy
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章