在Python中,形状(shape)、步幅(stride)和子偏移量(suboffsets)是与多维数组相关的概念
▥Python
𝄐 0
python偏移量没看懂,python步长值,python步长为负数,python中的偏移量,python中步长,python步长为-1
在Python中,形状(shape)、步幅(stride)和子偏移量(suboffsets)是与多维数组相关的概念。
1. 形状(shape):表示多维数组每个维度的大小,以元组形式表示。例如,一个形状为(3, 4)的二维数组表示该数组有3行4列。
示例:
python
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("Array shape:", arr.shape)
# Output: Array shape: (3, 4)
2. 步幅(stride):表示在内存中遍历数组时需要跳过的字节数,以元组形式表示。对于一个形状为(shape_0, shape_1, ..., shape_n-1)的n维数组,其步幅为(stride_0, stride_1, ..., stride_n-1)。其中,stride_i表示沿第i个轴遍历时需要跳过的字节数。
示例:
python
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("Array strides:", arr.strides)
# Output: Array strides: (16, 4)
上面的输出结果表示,在遍历该数组时,需要先跳过16个字节才能访问下一行(即第一个维度),在同一行上,则只需要跳过4个字节。
3. 子偏移量(suboffsets):是指数组中某个元素相对于其所在的多维数组的起始地址,所需要的额外偏移量。通常情况下,子偏移量为0,即数组元素刚好位于数组起始地址处。但是,在一些特殊情况下,例如复合数据类型或非连续的数组,子偏移量可能不为0。
示例:
python
import numpy as np
arr = np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')])
print("Array suboffsets:", arr.__array_interface__['descr'][0][1])
# Output: Array suboffsets: [0, 4]
上面的输出结果表示,dtype为[('x', 'i4'), ('y', 'i4')]的二维数组中,元素x和元素y分别占据4个字节,并且元素y相对于数组起始地址要向后偏移4个字节。
在Python中,形状(shape)、步幅(stride)和子偏移量(suboffsets)是与多维数组相关的概念。
1. 形状(shape):表示多维数组每个维度的大小,以元组形式表示。例如,一个形状为(3, 4)的二维数组表示该数组有3行4列。
示例:
python
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("Array shape:", arr.shape)
# Output: Array shape: (3, 4)
2. 步幅(stride):表示在内存中遍历数组时需要跳过的字节数,以元组形式表示。对于一个形状为(shape_0, shape_1, ..., shape_n-1)的n维数组,其步幅为(stride_0, stride_1, ..., stride_n-1)。其中,stride_i表示沿第i个轴遍历时需要跳过的字节数。
示例:
python
import numpy as np
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print("Array strides:", arr.strides)
# Output: Array strides: (16, 4)
上面的输出结果表示,在遍历该数组时,需要先跳过16个字节才能访问下一行(即第一个维度),在同一行上,则只需要跳过4个字节。
3. 子偏移量(suboffsets):是指数组中某个元素相对于其所在的多维数组的起始地址,所需要的额外偏移量。通常情况下,子偏移量为0,即数组元素刚好位于数组起始地址处。但是,在一些特殊情况下,例如复合数据类型或非连续的数组,子偏移量可能不为0。
示例:
python
import numpy as np
arr = np.zeros((2, 2), dtype=[('x', 'i4'), ('y', 'i4')])
print("Array suboffsets:", arr.__array_interface__['descr'][0][1])
# Output: Array suboffsets: [0, 4]
上面的输出结果表示,dtype为[('x', 'i4'), ('y', 'i4')]的二维数组中,元素x和元素y分别占据4个字节,并且元素y相对于数组起始地址要向后偏移4个字节。
本文地址:
/show-276858.html
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。