目录
1️⃣前言
2️⃣array对象
array
对象就是一个数组,其是Numpy
的核心数据结构。
它可以是一维数组,也可以是多维数组。
Python
中的list
列表也能实现数组对象的相应功能,那为什么要使用array
呢?
首先,我们分别使用Python
和使用numpy
里的数组对象array
,来进行数组计算,进而对比二者的不同点。
3️⃣数组对象的属性
ndarray
的一般属性如下所示:
属性 | 含义 |
---|---|
shape | 数组的形状,即维度,n行m列 |
ndim | 秩(rank),即数组的维度或轴的数量 |
size | 数组中元素的总个数,相当于shape 中的n*m |
dtype | 数组对象元素的数据类型 |
itemsize | 数组中每个元素的字节长度 |
real | 返回数组的实部 |
imag | 返回数组的虚部 |
nbytes | 数组中所有元素的字节长度 |
flat | 返回数组的一维迭代器 |
T | 类似矩阵的转置,与self.transpose( ) 相同,如果维度小于2则返回self |
data | 指向存放数组数据的python buffer 对象,包含实际数组元素的缓冲区 |
下面我们就来看看属性表中的前四个属性!
首先是一维数组和二维数组的创建:
✨shape
✨ndim
✨size
✨dtype
4️⃣创建数组对象
🌳np.array()
- 我们可以使用
array
函数来创建一个数组对象
格式如下:
array(object, dtype, ndmin)
举个例子:
🌳np.empty()
- 我们可以使用
empty
函数来创建一个数组对象。
格式如下:
np.empty(shape, dtype)
举个例子:
需要注意的是,empty
函数创建的数组对象是未初始化的。
比如:
也就是说,数组里的元素是随机值。这一点需要注意。
🌳np.arange()
- 我们可以使用
arange
函数来创建一维数组。
格式如下:
np.arange(start,stop,step dtype)
注意:数组的元素值并没有取到stop
处的值,即区间为[start, stop)
举个例子:
🌳np.asarray()
- 我们可以使用
asarray
函数来创建一个数组对象
格式如下:
np.asarray(a, dtype)
举个例子:
举例二:
🌳np.linspace()
- 我们可以使用
linspace
函数来创建一维数组,该数组是等差数列
格式如下:
np.linspace(start, stop, num, endpoint, retstep, dtype)
举个例子:
如果将 endpoint
设为 False
(即不包含终止值),那么效果如下:
如果将 retstep
设为 True
(即要显示间距),那么效果如下:
🌳np.logspace()
- 我们可以使用
logspace
函数来创建一个数组对象
格式如下:
np.logspace(start, stop, num, endpoint, base, dtype)
举个例子:
如果我们将对数的底数base
设置为2,那么效果如下:
🌳np.ones()
- 我们可以使用
ones
函数来创建一个元素全是1的数组对象
格式如下:
np.ones(shape, dtype)
举个例子:
🌳np.ones_like()
- 如果我们将一个数组对象
x
传入ones_like
函数,则可以创建另一个数组对象,比如y
,这个数组y的形状和x
一样,不同在于y
的元素全是1
格式如下:
np.ones_like(a, dtype)
举个例子:
🌳np.zeros()
- 和
ones
函数一样,我们也可以使用zeros
函数来创建一个数组对象,不同的是,zeros
函数创建的数组的元素全是0
格式如下:
zeros(shape, dtype)
举个例子:
🌳np.zeros_like()
- 如果我们将一个数组对象
x
传入zeros_like
函数,就可以创建另一个数组对象,比如y
,这个数组y
的形状和x
一样,不同在于y
的元素全是0
格式如下:
np.zeros_like(a, dtype)
举个例子:
🌳np.full()
- 我们可以使用
full
函数来创建一个数组对象,该数组对象里的所有元素都是同一个值,该值由我们来设定。
格式如下:
np.full(shape, fill_value, dtype)
举个例子:
🌳np.full_like()
- 比如说,我们可以使用
full_like
函数来创建一个数组对象x
,该x
对象与传入的数组对象y
一样大(即相同的shape
),但是x
的所有元素的值都是一样的,并且由我们来设定。
格式如下:
np.full_like(a, fill_value, dtype)
举个例子:
5️⃣一些随机函数的总结
💡randint()
我们可以利用randint()
函数创建一个随机分布整数型数组。
格式为:
举例:
💡randn()
我们可以利用randn(d0,d1,...dn)
创建服从X~N(0,1)
的正态分布随机数组(均值为0,方差为1)
举例:
💡random()
我们可以利用random(size)
函数创建一个随机数组,元素取值在0.0~1.0
之间。
举例:
💡shuffle()
我们可以利用shuffle(x)
函数来将一个数组的值随机排列。
举例:
需要注意的是,如果要改变的数组是多维的,那么只会在第一维度打散数据。比如我们要将一张学生信息表打乱,我们只会将每一行给随机排列,而每一列的值并没有改变
举例:
💡permutation()
我们可以利用permutation(x)
函数来将一个数组的值随机排列。,和shuffle()
很类似,不同点在于,permutation()
不会改变原来的数组,它只是返回一个拷贝。
举例:
6️⃣最后
好了,以上就是一些创建数组对象的简便方法,如果你有想补充的话,欢迎到评论区里讨论!