文章目录
- 多维数组和高维点
- experiment code
- shape的结果解读:
- 一维ndarray
- 使用逻辑
多维数组和高维点
experiment code
import numpy as np
a = np.array([[[1, 2, 3],
[11, 3, 4]],
[[1, 2, 3],
[11, 3, 4]]])
# %%
# 打印出a的维度数(即嵌套深度)
# 高维数组:嵌套深
print(a.ndim)
print(a.shape)
# 高维点:单个点的坐标的刻画维度多(可以用一个n元组表达)(d0,d1,d2,d3,d4,..dn-1):
'''
例如:
一维点:(d0)
二维点:(d0,d1)
三维点:(d0,d1,d2):例如(1,2,3),(x=1,y=2,z=3)
...
总之,要区分好两种"维度"的含义
ndarray(多维度数组)对象的shape属性可以体现该数组在各个维度上的度量宽度
'''
b = np.array(
[1, 2, 3, 4, 5, 6]
)
print(b.ndim, "\n", b.shape)
# %%
ls=range(120)
c=np.array(ls).reshape(2,2,5,3,2)
print(c)
#shape元组中的各个元素的乘积值为ndarray对象包含的元素的总数,例如这里2*2*5*3*2=120
# %%
shape的结果解读:
- shape元组中的各个元素的乘积值为ndarray对象包含的元素的总数
- 可以从shape对应的元组从后往前解读,对应的,对于多维数组,可以从内往外解读
- 比如,shape=(2,2,5,3,2)
最后一个值是2,则最深层的一维数组有2个基础元素(0维元素)
倒2个值是3,则次深的数组(二维数组)是由3个上述规格的一维数组构成的二维数组,依次类推… - 同时,我们可以为shape元组按"权"来理解,即,像理解十进制数中的个十百千万…这些权(权表示基本元素的个数,权大,对应的元素个数也多)(但有些不同,这些权之间的关系取决于具体的shape元组),左侧的数较右边的数是高位
(2,2,5,3,2)
[[[[[ 0 1]
[ 2 3]
[ 4 5]]
[[ 6 7]
[ 8 9]
[ 10 11]]
[[ 12 13]
[ 14 15]
[ 16 17]]
[[ 18 19]
[ 20 21]
[ 22 23]]
[[ 24 25]
[ 26 27]
[ 28 29]]]
[[[ 30 31]
[ 32 33]
[ 34 35]]
[[ 36 37]
[ 38 39]
[ 40 41]]
[[ 42 43]
[ 44 45]
[ 46 47]]
[[ 48 49]
[ 50 51]
[ 52 53]]
[[ 54 55]
[ 56 57]
[ 58 59]]]]
[[[[ 60 61]
[ 62 63]
[ 64 65]]
[[ 66 67]
[ 68 69]
[ 70 71]]
[[ 72 73]
[ 74 75]
[ 76 77]]
[[ 78 79]
[ 80 81]
[100 101]]
[[102 103]
[104 105]
[106 107]]
[[108 109]
[110 111]
[112 113]]
[[114 115]
[116 117]
[118 119]]]]]
一维ndarray
import numpy as np
a=np.array([1,2,3])
b=np.array([[1],[2],[3]])
print(f'a={a},a.shape={a.shape}')
print(f'b={b},b.shape={b.shape}')
这两种是不同类型的ndarray,从reshape值也可以看出
使用逻辑