numpy数组形状
程序员文章站
2022-07-12 22:38:57
...
修改数组的形状
shape
和 reshape
方法不能改变数组中元素的总数,否则会报错:
使用 newaxis 增加数组维数
根据插入位置的不同,可以返回不同形状的数组:
插入多个新维度:
squeeze 方法去除多余的轴
squeeze 返回一个将所有长度为1的维度去除的新数组。
数组转置
使用 transpose
返回数组的转置,本质上是将所有维度反过来:
注意:
- 对于复数数组,转置并不返回复共轭,只是单纯的交换轴的位置
- 转置可以作用于多维数组
转置只是交换了轴的位置。
另一方面,转置返回的是对原数组的另一种view,所以改变转置会改变原来数组的值
数组连接
有时我们需要将不同的数组按照一定的顺序连接起来:
concatenate((a0,a1,...,aN), axis=0)
注意,这些数组要用 ()
包括到一个元组中去。
除了给定的轴外,这些数组其他轴的长度必须是一样的。
事实上,Numpy提供了分别对应这三种情况的函数:
- vstack
- hstack
- dstack
Flatten 数组
flatten
方法的作用是将多维数组转化为1维数组:
返回的是数组的复制,因此,改变 b
并不会影响 a
的值:
flat 属性
还可以使用数组自带的 flat
属性:
但此时修改 b
的值会影响 a
:
atleast_xd 函数
保证数组至少有 x
维:
在Scipy库中,这些函数被用来保证输入满足一定的条件:“
用法 | Scipy中出现次数 |
---|---|
value.flaten() value.flat value.ravel() |
~2000次 |
atleast_1d(value) atleast_2d(value) |
~700次 |
asarray(value) | ~4000次 |