我在Python中有这个子代码,我无法理解它是什么或它做什么,尤其是这句话:
X[:,:,:,i]
Run Code Online (Sandbox Code Playgroud)
子码是:
train_dict = sio.loadmat(train_location)
X = np.asarray(train_dict['X'])
X_train = []
for i in range(X.shape[3]):
X_train.append(X[:,:,:,i])
X_train = np.asarray(X_train)
Y_train = train_dict['y']
for i in range(len(Y_train)):
if Y_train[i]%10 == 0:
Y_train[i] = 0
Y_train = to_categorical(Y_train,10)
return (X_train,Y_train)
Run Code Online (Sandbox Code Playgroud)
这称为数组切片。正如 @c\xe1\xb4\x8f\xca\x9f\xe1\xb4\x85s\xe1\xb4\x98\xe1\xb4\x87\xe1\xb4\x87\xe1\xb4\x85 提到的,是一个 4D 数组x,X[:,:,:,i]获取其一个特定的 3D 数组切片。
也许维度较少的示例会有所帮助。
\n\nmatrix = np.arange(4).reshape((2,2))\nRun Code Online (Sandbox Code Playgroud)\n\n在本例中matrix是一个二维数组:
array([[0, 1],\n [2, 3]])\nRun Code Online (Sandbox Code Playgroud)\n\n因此matrix[:, 1]将导致 的切片更小matrix:
array([1, 3])\nRun Code Online (Sandbox Code Playgroud)\n\n在原始代码中,matrix[:,:,:, 1]第一个值的:含义类似于“此维度中的所有元素”。
在这里查看 numpy 中数组切片的工作原理。
\n| 归档时间: |
|
| 查看次数: |
565 次 |
| 最近记录: |