import numpy as np
a = np.arange(36)
print a.shape
(36,)
a = a.reshape(3,*(3,4))
print a.shape
(3,3,4)
首先,我认为*(3,4)可能是一个参数。所以我帮助(np.reshape)。
a : array_like
Array to be reshaped.
newshape : int or tuple of ints
The new shape should be compatible with the original shape. If
an integer, then the result will be a 1-D array of that length.
One shape dimension can be -1. In this case, the value is inferred
from the length of the array and remaining dimensions.
order : {'C', 'F', 'A'}, optional
Read the elements of `a` using this index order, and place the elements
into the reshaped array using this index order. 'C' means to
read / write the elements using C-like index order, with the last axis
index changing fastest, back to the first axis index changing slowest.
'F' means to read / write the elements using Fortran-like index order,
with the first index changing fastest, and the last index changing
slowest.
Note that the 'C' and 'F' options take no account of the memory layout
of the underlying array, and only refer to the order of indexing. 'A'
means to read / write the elements in Fortran-like index order if `a`
is Fortran *contiguous* in memory, C-like order otherwise.
我找不到可以匹配*(3,4)的正确参数,那么如何理解*(3,4)的用法呢?
*(3,4)
打开元组的包装,因此它与进行的操作完全相同a.reshape(3,3,4)
。如果(3,4)
是变量,则使用他解包才是真正有意义的,即:
t = (3,4)
a.reshape(3,*t) # same as a.reshape(3, t[0], t[1])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句