就地执行numpy exp函数

时间:2016-12-20 15:25:22

标签: python-3.x numpy multidimensional-array exp numpy-ndarray

在标题中,我需要在非常大的ndarray上执行onCreate,假设App,并将结果存储在App.context本身。这项操作可以就地执行吗?

2 个答案:

答案 0 :(得分:8)

您可以使用out的可选exp参数:

a = np.array([3.4, 5])
res = np.exp(a, a)
print(res is a)
print(a)

输出:

True
[  29.96410005  148.4131591 ]
  

exp(x [,out])

     

计算输入数组中所有元素的指数。

     

返回

     

out:ndarray      输出数组,元素指数为x

此处a的所有元素都将替换为exp的结果。返回值resa相同。没有创建新数组

答案 1 :(得分:4)

Mike Mueller's答案很好,但请注意,如果您的数组类型为dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile project(':react-native-vector-icons') compile project(':react-native-maps') compile project(':react-native-fbsdk') compile "com.android.support:appcompat-v7:23.0.1" compile "com.facebook.react:react-native:+" // From node_modules compile(project(":react-native-google-signin")){ exclude group: "com.google.android.gms" // very important } compile "com.google.android.gms:play-services-auth:10.0.1" //should be at least 9.0.0 //compile 'com.facebook.android:facebook-android-sdk:4.5.0' compile "com.facebook.android:facebook-android-sdk:[4,5)" } int32int等,则会引发int64 。因此,一种安全的方法是将您的数组强制转换为TypeErrorfloat64等,在执行float32之前

exp

Type Casting& EXP:

In [12]: b
Out[12]: array([1, 2, 3, 4, 5], dtype=int32)

In [13]: np.exp(b, b)
--------------------------------------------------------------------------
TypeError: ufunc 'exp' output (typecode 'd') could not be coerced to provided 
output parameter (typecode 'i') according to the casting rule ''same_kind''