Если вы также хотите получить значение кнопки.
Java:
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
wv.addJavascriptInterface(new Object()
{
@JavascriptInterface // For API 17+
public void performClick(String strl)
{
stringVariable = strl;
Toast.makeText (YourActivity.this, stringVariable, Toast.LENGTH_SHORT).show();
}
}, "ok");
HTML:
<button type="button" value="someValue" onclick="ok.performClick(this.value);">OK</button>
Определение asarray
:
def asarray(a, dtype=None, order=None):
return array(a, dtype, copy=False, order=order)
. Это похоже на array
, за исключением того, что у него меньше вариантов и copy=False
. По умолчанию array
имеет copy=True
.
Основное отличие состоит в том, что array
(по умолчанию) сделает копию объекта, а asarray
не будет, если это необходимо.
Различия упоминаются достаточно четко в документации array
и asarray
. Различия заключаются в списке аргументов и, следовательно, действии функции, зависящей от этих параметров.
Определения функций:
numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)
и
numpy.asarray(a, dtype=None, order=None)
Следующие аргументы - это те, которые могут быть переданы в array
, а не asarray
, как указано в документации:
copy: bool, optional Если true (по умолчанию), то объект копируется. В противном случае копия будет сделана только в том случае, если
__array__
возвращает копию, если obj является вложенной последовательностью или если требуется копия для удовлетворения любых других требований (dtype, order и т. Д.).subok: bool, optional If True, тогда подклассы будут переданы, иначе возвращаемый массив будет вынужден быть массивом базового класса (по умолчанию).
ndmin: int, необязательный Задает минимальное количество измерений, которое должен иметь результирующий массив. [1]
будут предварительно отложены до формы, необходимые для выполнения этого требования.
Различие может быть продемонстрировано в этом примере:
>>> A = numpy.matrix(np.ones((3,3)))
>>> A
matrix([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
numpy.array
для изменения A
. Не работает, потому что вы изменяете копию >>> numpy.array(A)[2]=2
>>> A
matrix([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
numpy.asarray
, чтобы изменить A
. Он работал, потому что вы сами изменяете A
>>> numpy.asarray(A)[2]=2
>>> A
matrix([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 2., 2., 2.]])
Надеюсь, что это поможет!
Вот простой пример, который может продемонстрировать разницу.
Основное отличие состоит в том, что массив будет копировать исходные данные и использовать другой объект, который мы можем изменить в исходном массиве.
import numpy as np
a = np.arange(0.0, 10.2, 0.12)
int_cvr = np.asarray(a, dtype = np.int64)
Содержимое в массиве (a) остается нетронутым, и все же мы можем выполнять любую операцию над данными с использованием другого объекта без изменения содержимого в исходном массиве.
array([1, 2, 3])
илиasarray([1, 2, 3])
? – endolith 3 June 2014 в 00:25[1, 2, 3]
является списком Python, поэтому необходимо создать копию данных для созданияndarary
. Поэтому используйтеnp.array
непосредственно вместоnp.asarray
, который отправит параметрcopy=False
вnp.array
.copy=False
игнорируется, если копия должна быть сделана так, как в этом случае. Если вы сравниваете два, используя%timeit
в IPython, вы увидите разницу для небольших списков, но вряд ли это имеет значение для больших списков. – unutbu 3 June 2014 в 00:43np.asanyarray
? – Lee 26 July 2016 в 16:29asarray
всегда возвращаетndarray
.asanyarray
вернет подклассndarray
, если это то, что было передано ему. Например,np.matrix
является подклассомndarray
. Таким образом,np.asanyarray(np.matrix(...))
возвращает ту же матрицу, тогда какnp.asarray(np.matrix(...))
преобразует матрицу вndarray
. – unutbu 26 July 2016 в 16:34