Реагируйте на Native Navigation с Redux, как использовать?

In [164]: x = np.array([1,2,3,4])
In [165]: x.__array_interface__
Out[165]: 
{'data': (40465184, False),
 'strides': None,
 'descr': [('', '<i8')],
 'typestr': '<i8',
 'shape': (4,),
 'version': 3}

Массив, созданный с помощью ndarray, имеет тот же data буфер:

In [166]: y = np.ndarray(shape = (2,1),buffer = x)
In [167]: y
Out[167]: 
array([[5.e-324],
       [1.e-323]])
In [168]: y.__array_interface__
Out[168]: 
{'data': (40465184, False),        # same as for x
 'strides': None,
 'descr': [('', '<f8')],
 'typestr': '<f8',
 'shape': (2, 1),
 'version': 3}

и для массива с использованием int dtype:

In [169]: z = np.ndarray(shape = (2,1),buffer = x, dtype=int)
In [170]: z.__array_interface__
Out[170]: 
{'data': (40465184, False),
 'strides': None,
 'descr': [('', '<i8')],
 'typestr': '<i8',
 'shape': (2, 1),
 'version': 3}

На самом деле нам не нужно передавать x в качестве аргумента buffer, только его атрибут x.data:

In [171]: np.ndarray(shape = (2,1), buffer = x.data, dtype=int)
Out[171]: 
array([[1],
       [2]])

. Из-за буфера обмена данными в x появляются изменения z ] В [172]: z [:] * = 2 В [173]: z Out [173]: массив ([[2], [4]]) В [174]: x Out [174]: массив ([2, 4, 3, 4])

и y:

In [175]: y
Out[175]: 
array([[1.e-323],
       [2.e-323]])

С помощью offset мы можем создать массив, который выбирает другую часть буфер данных:

In [178]: w=np.ndarray(shape = (2,1), buffer = x.data, dtype=int, offset=8)
In [179]: w
Out[179]: 
array([[4],
       [3]])

Но для этого мы обычно не используем ndarray. Вместо этого мы используем срез, чтобы получить view, при необходимости reshape:

In [181]: x[1:3].reshape(2,1)
Out[181]: 
array([[4],
       [3]])

Вы можете построить эквивалент rand_mat с помощью randoms.reshape(n,m) или np.random.normal(size=(n,m)).

ndarray обычно требуется только тогда, когда buffer поступает из другого источника, что еще не является ndarray, которое может быть изменено или viewed.

2
задан Jose 20 January 2019 в 06:16
поделиться

1 ответ

registerComponentWithRedux () устарела в пользу Регистрация экранов с помощью компонента поставщика упаковки .

Пример кода, который вы предоставляете, на самом деле является правильным способом сделать это, поскольку функция registerComponentWithRedux устарела. Регистрация экрана с избыточным отображением будет выглядеть примерно так ( образец из RNN docs ):

Navigation.registerComponent('navigation.playground.ReduxScreen', () => (props) => (
  <Provider store={reduxStore}>
    <ReduxScreen {...props} />
  </Provider>
), () => ReduxScreen);
0
ответ дан Timo Glastra 20 January 2019 в 06:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: