Я получил новые вопросы NumPy измерение - PullRequest
0 голосов
/ 02 марта 2020

У меня есть вопрос относительно размера Numpy, который часто используется в Keras и многих других приложениях

Вопрос 1

В чем разница между формой = ( 10,1) и (10,)?

Вопрос 2

Что такое «Нет» в некоторых приложениях с NumPy, ex) input_shape = (Нет, 32) означает ли это, что заданный размер c еще не установлен?

Вопрос 3

как мне это интерпретировать: ... axis = -1 how можно ли установить ось на -1?

1 Ответ

1 голос
/ 02 марта 2020

1) Ответ: Массив с формой (10000,) является 1-мерным массивом, где Массив с формой (10000,1) является 2-мерным массивом

import numpy as np

# Array with shape (10000,) is a 1-Dimensional Array
one=np.ones((10,))
print("1-Dimensional Array:\n",one)

#Array with shape (10000,1) is a 2-Dimensional Array.
two=np.ones((10,1)) 
print("2-Dimensional Array:\n",two)

Выход:

1-Dimensional Array:
 [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

2-Dimensional Array:
 [[1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]
 [1.]]

2) Ответ: None просто добавляет измерение к объекту массива. Вы можете использовать «None» или «newaxis» numpy для создания нового измерения.

Общие рекомендации: Вы также можете использовать None вместо np.newaxis

import numpy as np

#### Import the Fashion MNIST dataset
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

#Original Dimension
print(train_images.shape)

train_images1 = train_images[None,:,:,:]
#Add Dimension using None
print(train_images1.shape)

train_images2 = train_images[np.newaxis is None,:,:,:]
#Add dimension using np.newaxis
print(train_images2.shape)

#np.newaxis and none are same
np.newaxis is None

Вывод:

(60000, 28, 28)
(1, 60000, 28, 28)
(1, 60000, 28, 28)
True

3) Ответ: Параметр оси указывает индекс новой оси в измерениях результата. Например, если ось = 0, это будет первое измерение, а если ось = -1, это будет последнее измерение.

# input array 
a = np.array([[ 1, 2, 3], [ -1, -2, -3]] ) 
print ("1st Input array : \n", a)  

b = np.array([[ 4, 5, 6], [ -4, -5, -6]] ) 
print ("2nd Input array : \n", b)  

# Stacking the two arrays along axis 0 
out1 = np.stack((a, b), axis = 0) 
print ("Output array along axis 0:\n ", out1) 

# Stacking the two arrays along axis 1 
out2 = np.stack((a, b), axis = 1) 
print ("Output array along axis 1:\n ", out2) 

# Stacking the two arrays along axis -1 
out3 = np.stack((a, b), axis = -1) 
print ("Output array along axis -1:\n ", out3)

Вывод:

1st Input array : 
 [[ 1  2  3]
 [-1 -2 -3]]

2nd Input array : 
 [[ 4  5  6]
 [-4 -5 -6]]

Output array along axis 0:
  [[[ 1  2  3]
  [-1 -2 -3]]

 [[ 4  5  6]
  [-4 -5 -6]]]

Output array along axis 1:
  [[[ 1  2  3]
  [ 4  5  6]]

 [[-1 -2 -3]
  [-4 -5 -6]]]

Output array along axis -1:
  [[[ 1  4]
  [ 2  5]
  [ 3  6]]

 [[-1 -4]
  [-2 -5]
  [-3 -6]]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...