1. 前言
前一篇已经教大家如何在Android Studio上进行Chaquopy安装;由于Chaquopy支援Python多个第三方库,让开发者可以在Android Studio上轻松使用Python生态系统。Chaquopy支援大多数常用的Python第三方库,例如numPy、SciPy、Pandas、Matplotlib、Scikit-learn等。详细第三方库可参考Chaquopy package repository网站。
因此这次要教大家如何安装Python第三方库numpy与应用。
2. Android Studio安装Python第三方库numpy
以下环境是在Windows 10下建置。
a. 在appàbuild.gradleàdefaultConfigàpython区块添加文件添加。(图1)
pip{
install "numpy"
}
看官们如果要安装其他第三方库也可以利用此方式进行新增。
图1 |
b. 设定完后记得,点击Sync Now进行同步,完成之后,Python的第三方库numpy套件就成功加入项目内。(图2)
图2 |
3. Android内使用 Python第三方库numpy套件范例
以下提供两个范例,1) 使用numpy计算两个矩阵的乘积。2) 使用numpy生成随机数组,并计算其平均值和标准差,除了透过python使用numpy计算外,还能将计算后的数值返回并转成java格式,供使用者能够在java进行后续应用,达到java与python交互应用。 a. 使用numpy计算两个矩阵的乘积。 i. 在hello_python.py档案内增加。(图3)
import numpy as np
#使用numpy计算两个矩阵的乘积
def matrix_multiply():
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.matmul(a, b)
return c
图3 |
ii. 我们在MainActivity档案内添加以下程式码,将python内numpy计算完后的数值读取到java程式中。(图4)
//初始化python环境
if(!Python.isStarted()){
Python.start(new AndroidPlatform(this));
}
//使用numpy计算两个矩阵的乘积
Python py = Python.getInstance();
//调用hello_python.py里面的matrix_multiply函式
PyObject pyObj = py.getModule("hello_python").get("matrix_multiply");
//将matrix_multiply计算完的数值,换成java中的float类型
float[][] result = pyObj.call().toJava(float[][].class);
String resultStr = "";
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
resultStr += result[i][j] + " ";
}
resultStr += "\n";
}
Log.d("Result", resultStr);
图4 |
iii. 最后执行Run app即可成功使用,可以在Logcat中看到python返回至Java的输出。 (图5)
图5 |
b. 使用numpy生成随机数组,并计算其平均值和标准差。
i. 在hello_python.py档案内增加。(图6)
import numpy as np
#使用numpy生成随机数组,并计算其平均值和标准差。
def numpy_example():
# Generate a random array with shape (3, 3)
a = np.random.rand(3, 3)
# Calculate the mean of the array
mean = np.mean(a)
# Calculate the standard deviation of the array
std = np.std(a)
return mean, std
图6 |
ii. 我们在MainActivity档案内添加以下程式码,将python内numpy计算完后的两个返回值,分别读取到java程式中。(图7)
//使用numpy生成随机数组,并计算其平均值和标准差。
Python np = Python.getInstance();
//调用hello_python.py里面的numpy_example函式
PyObject npObj = np.getModule("hello_python").get("numpy_example");
PyObject npResult = npObj.call();
//numpy_example的返回值有两个,将其分别转换成java中的float类型
float mean = npResult.asList().get(0).toFloat();
float std = npResult.asList().get(1).toFloat();
Log.d("Result"," mean = "+ mean);
Log.d("Result"," std = "+ std);
图7 |
iii. 最后执行Run app既可成功使用,可以在Logcat中看到python返回至Java的输出。(图8)
图8 |
结语
透过以上的教学,相信各位已经能够成功透过Android Studio轻松地结合Chaquopy使用Python第三方库numpy,这将可为各位看官们提供更多的功能应用选择,使得开发过程更加灵活和高效,有问题的看官们欢迎联系我,我们一同讨论。
喜欢我的帖子,请帮我按个”收藏”,我们下回见。
Q&A
1.Chaquopy 是否可以在 iOS 上运行?
Ans:Chaquopy 目前只支援 Android 平台,并不支持 iOS。
2.Chaquopy是否需要Internet连接才能工作?
Ans:在构建过程中,Chaquopy需要Internet连接才能下载Python解释器和第三方库。但是,在运行时,它不需要Internet连接。
3.在使用Chaquopy时,是否需要将Python代码转换为Java代码?
Ans:不需要。Chaquopy允许直接在Android应用中运行Python代码,并且可以方便地将Python数据类型转换为Java数据类型。
4.Chaquopy的Python第三方库是否支援Qt5吗?
Ans: Chaquopy并不支援Qt5
5.Chaquopy的Python第三方库是否支持OpenCV?
Ans:是的,有支援,此部分下一篇博客会介绍,近请期待。
以上内容来源大大通官网,速戳了解更多精彩内容吧~