我之前也问过类似的问题,但是措辞很差。我发现了一些东西,但还没有成功。我正在尝试通过调用先前的函数来创建新的2D数组。我希望function_2进行与function_1相同的计算,只是在function_2中它涉及数组而不是单个值。
这就是我所拥有的:
import numpy as np
def function_1(A,B):
A = 10
B = 2
ans = A*B
return ans
def function_2(C,D):
C = np.array([1,2,3,4,5])
D = np.array([1,2,3,4,5])
#here I create a zero array and include some other codes required
for i in range(C): #each i are A values
for j in range(D): #each j are B values
array[i,j] = function_1(C,D)
return array
print(array)
上面的例子给了我这个
[[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]
[25. 25. 25. 25. 25.]]
但是我希望它使用C和D的每个值进行计算,并给我这样的东西:
[[1. 2. 3. 4. 5.]
[2. 4. 6. 8. 10.]
[3. 6. 9. 12. 15.]
[4. 8. 12. 16. 20.]
[5. 10. 15. 20. 25.]]
谢谢
答案 0 :(得分:1)
尝试一下。
ans = []
for i in range(1,6):
a =[]
for j in range(1,6):
a.append(i*j)
ans.append(a)
ans = np.array(ans)
ans
使用np.zeros
ans = np.zeros((5,5),dtype=np.int)
for i in range(1,6):
for j in range(1,6):
ans[i-1][j-1]=i*j
ans
答案 1 :(得分:1)
您的代码中有几个错误。让我们来弄清楚。
cmake_minimum_required(VERSION 3.14)
project(project1)
set(CMAKE_CXX_STANDARD 17)
find_package(JNI REQUIRED)
add_executable(project1 main.cpp)
无论将什么参数传递给函数,它都将是const。但是我不明白为什么在您的示例中/usr/lib/jvm/java-8-openjdk
而不是def function_1(A, B):
-> A = 10
-> B = 2
...
。
25
函数用于数组。请检查功能的the reference。20
range
for i in range(C): #here
for j in range(D): #here
array[i, j] = function_1(C,D)
我不明白您是怎么得到这些错误的function_1
数组的。但是固定的解决方案应该是:
-> function_1(C, D)
以及没有功能的更好解决方案
25.
两种解决方案产品:
import numpy as np
def function_1(A, B):
ans = A * B
return ans
def function_2(C, D):
a = np.zeros((len(C), len(D)), dtype=int) # because you have to allocate matrix before use
for idi, i in enumerate(C):
for idj, j in enumerate(D):
a[idi][idj] = function_1(i, j)
return a
C = np.array([1, 2, 3, 4, 5])
D = np.array([1, 2, 3, 4, 5])
array = function_2(C, D)
print(array)