2016-09-27 6 views
0
import numpy as np 
a = np.arange(36) 
print a.shape 

(36)a.reshape(3、*(3,4))で*(3,4)の使用法を理解するにはどうすればよいですか?

a = a.reshape(3,*(3,4)) 
print a.shape 

(3,3,4)

まず、Iは、(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)の使用方法を理解することができます*一致させることができ、正しいパラメータを見つけることができませんか?

+0

あなたはPythonでアスタリスク演算子について読みましたか? – Divakar

+0

私は恥ずかしいです。私はPythonのアスタリスク演算子については読んでいません。あなたはそれに関する有用なリンクを投稿できますか? –

+0

[このリンク](https://www.google.com/search?q=python+asterisk+operator)を参考にしてください。 – JJJ

答えて

2

*(3,4)はタプルをアンパックするので、a.reshape(3,3,4)とまったく同じです。

t = (3,4) 
a.reshape(3,*t) # same as a.reshape(3, t[0], t[1]) 
-1

*が値を解凍します:それはだけは本当に彼が(3,4)が変数すなわちだった場合、開梱使用するように理にかなって。 ので、a = a.reshape(3,*(3,4))a = a.reshape(3, 3, 4) に同じで、結果がある(3、3、4)

関連する問題