import numpy as np
def function(1st_variable,2nd_variable):
ratio = 1st_variable/ 2nd_variable
y = np.power(ratio, 1.1)*0.79
if y >= value*0.89:
y = value*0.89
return y
def calculate(array):
pre_array = []
m = len(array[:,0])
for i in np.arange(m):
if array[i,4] == 0:.
array[i,2] = 0
elif array[i,4] == 1:
None
elif array[i,4] == 2:
live_value = array[i,5]
new_value = function(array[i,2], live_value)
print("New Ratio:",new_value,"\n")
array[i,2] = new_value
print("array:",array[i,2],"\n")
elif array[i,4] == 3:
t= 5400
array[i,2] = 0.79
row = (array[i,0],array[i,1], array[i,2],array[i,4])
pre_array.append(list(row))
array = np.array([[ 42280512, 1, 7, 0, 2, 10],
[ 42280233, 1, 8, 0, 2, 10],
[ 42280562, 1, 9, 0, 2, 10]])
我的期望: 新比率:0.533623485601259
数组:0.533623485601259
新比率:0.6180535097191309
数组:0.6180535097191309
新比率:0.7035481925846184
数组:0.7035481925846184
这就是我得到的:
新比率:0.533623485601259
数组:0
新比率:0.6180535097191309
数组:0
新比率:0.7035481925846184
数组:0
我的问题是,例如,我什至可以打印; “新比率:0.533623485601259”正确。我的数组的每一行都得到 array: 0
好吧,现在我刚刚做了这个改变;在数组的末尾;
,dtype='float'
。
新代码是;
import numpy as np
def function(st_variable,nd_variable):
ratio_value = st_variable / nd_variable
y = np.power(ratio_value, 1.1)*0.79
if y >= ratio_value*0.89:
y = ratio_value*0.89
return y
def calculate(array):
m = len(array[:,0])
for i in np.arange(m):
if array[i,4] == 2:
new_value = function(array[i,2], 2)
print("New Value:",new_value,"\n")
array[i,2] = new_value
print("array[i,2]:",array[i,2],"\n")
array = np.array([[ 42280512, 1, 7, 0, 2, 10],
[ 42280233, 1, 8, 0, 2, 10],
[ 42280562, 1, 9, 0, 2, 10]],dtype='float')
calculate(array)
它没有向我显示数字,它不等于零,因为它是一个整数数组......
输出为;
新值:3.115
数组[i,2]:3.115
新值:3.56
数组[i,2]:3.56
新值:4.005
数组[i,2]:4.00