gpt4 book ai didi

对numpy中轴与维度的理解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章对numpy中轴与维度的理解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

numpy's main object is the homogeneous multidimensional array. it is a table of elements (usually numbers), all of the same type, indexed by a tuple of positive integers. in numpy dimensions are called axes. the number of axes is rank. 。

for example, the coordinates of a point in 3d space [1, 2, 1] is an array of rank 1, because it has one axis. that axis has a length of 3. in the example pictured below, the array has rank 2 (it is 2-dimensional). the first dimension (axis) has a length of 2, the second dimension has a length of 3. 。

?
1
2
[[ 1. , 0. , 0. ],
  [ 0. , 1. , 2. ]]

ndarray.ndim 。

数组轴的个数,在python的世界中,轴的个数被称作秩 。

?
1
2
3
4
5
6
7
8
9
>> x = np.reshape(np.arange( 24 ), ( 2 , 3 , 4 ))
   # 也即 2 行 3 列的 4 个平面(plane)
>> x
array([[[ 0 , 1 , 2 , 3 ],
     [ 4 , 5 , 6 , 7 ],
     [ 8 , 9 , 10 , 11 ]],
     [[ 12 , 13 , 14 , 15 ],
     [ 16 , 17 , 18 , 19 ],
     [ 20 , 21 , 22 , 23 ]]])

shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度.

shape(x) 。

(2,3,4) 。

shape(x)[0] 。

2 。

或者 。

x.shape[0] 。

2 。

再来分别看每一个平面的构成:

?
1
2
3
4
5
6
7
8
9
10
11
12
>> x[:, :, 0 ]
array([[ 0 , 4 , 8 ],
     [ 12 , 16 , 20 ]])
>> x[:, :, 1 ]
array([[ 1 , 5 , 9 ],
     [ 13 , 17 , 21 ]])
>> x[:, :, 2 ]
array([[ 2 , 6 , 10 ],
     [ 14 , 18 , 22 ]])
>> x[:, :, 3 ]
array([[ 3 , 7 , 11 ],
     [ 15 , 19 , 23 ]])

也即在对 np.arange(24)(0, 1, 2, 3, ..., 23) 进行重新的排列时,在多维数组的多个轴的方向上,先分配最后一个轴(对于二维数组,即先分配行的方向,对于三维数组即先分配平面的方向) 。

reshpae,是数组对象中的方法,用于改变数组的形状.

二维数组 。

?
1
2
3
4
5
6
7
8
#!/usr/bin/env python
# coding=utf-8
import numpy as np
 
a = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print a
d = a.reshape(( 2 , 4 ))
print d

对numpy中轴与维度的理解

三维数组 。

?
1
2
3
4
5
6
7
8
#!/usr/bin/env python
# coding=utf-8
import numpy as np
 
a = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print a
f = a.reshape(( 2 , 2 , 2 ))
print f

对numpy中轴与维度的理解

形状变化的原则是数组元素不能发生改变,比如这样写就是错误的,因为数组元素发生了变化.

?
1
2
3
4
5
6
7
8
9
#!/usr/bin/env python
# coding=utf-8
import numpy as np
 
a = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print a
print a.dtype
e = a.reshape(( 2 , 2 ))
print e

对numpy中轴与维度的理解

注意:通过reshape生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变.

?
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
# coding=utf-8
import numpy as np
 
a = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])
print a
e = a.reshape(( 2 , 4 ))
print e
a[ 1 ] = 100
print a
print e

对numpy中轴与维度的理解

python中reshape函数参数-1的意思 。

?
1
2
3
4
5
6
7
8
9
10
a = np.arange( 0 , 60 , 10 )
>>>a
array([ 0 , 10 , 20 , 30 , 40 , 50 ])
>>>a.reshape( - 1 , 1 )
array([[ 0 ],
[ 10 ],
[ 20 ],
[ 30 ],
[ 40 ],
[ 50 ]])

如果写成a.reshape(1,1)就会报错 。

valueerror:cannot reshape array of size 6 into shape (1,1) 。

?
1
2
3
4
5
>>> a = np.array([[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]])
>>> np.reshape(a, ( 3 , - 1 )) # the unspecified value is inferred to be 2
array([[ 1 , 2 ],
     [ 3 , 4 ],
     [ 5 , 6 ]])

-1表示我懒得计算该填什么数字,由python通过a和其他的值3推测出来.

?
1
2
3
4
5
6
7
# 下面是两张2*3大小的照片(不知道有几张照片用-1代替),如何把所有二维照片给摊平成一维
>>> image = np.array([[[ 1 , 2 , 3 ], [ 4 , 5 , 6 ]], [[ 1 , 1 , 1 ], [ 1 , 1 , 1 ]]])
>>> image.shape
( 2 , 2 , 3 )
>>> image.reshape(( - 1 , 6 ))
array([[ 1 , 2 , 3 , 4 , 5 , 6 ],
     [ 1 , 1 , 1 , 1 , 1 , 1 ]])

以上这篇对numpy中轴与维度的理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/u014082714/article/details/75946302 。

最后此篇关于对numpy中轴与维度的理解的文章就讲到这里了,如果你想了解更多关于对numpy中轴与维度的理解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com