2 回答
TA贡献1883条经验 获得超3个赞
首先我创建一个假的price_list:
import numpy as np
price_list = np.random.rand(10,1000)
price_list.mean(axis = 1)
#> array([0.49730006, 0.48494404, 0.4948243 , 0.49762745, 0.49727592,
#> 0.50856465, 0.4993344 , 0.49325429, 0.4938947 , 0.50599995])
现在,我们可以使用向量化数组进行一次循环:
price_list_mean = np.zeros(10)
for i in range(price_list.shape[1]):
price_list_mean = price_list_mean + price_list[:,i]
price_list_mean = price_list_mean/price_list.shape[1]
# Checking the solution
np.isclose(price_list_mean,price_list.mean(axis = 1))
#> array([ True, True, True, True, True, True, True, True, True, True])
或者我们可以使用双循环来做到这一点:
price_list_mean = np.zeros(10)
for j in range(price_list.shape[0]):
for i in range(price_list.shape[1]):
price_list_mean[j] = price_list_mean[j] + price_list[j,i]
price_list_mean[j] = price_list_mean[j] / price_list.shape[1]
# Checking the solution
np.isclose(price_list_mean,price_list.mean(axis = 1))
#> array([ True, True, True, True, True, True, True, True, True, True])
警告!:这些解决方案比仅用函数计算平均值要低得多。除非出于教学目的,否则不应使用它们。
TA贡献1865条经验 获得超7个赞
price_list.mean(axis = 1)
# array([ 3.5, 11.5, 19.5, 27.5, 35.5])
同样可以通过遍历 numpy 数组并计算每行的平均值来完成。
for i in price_list:
print(i.mean())
或者
[i.mean() for i in price_list]
添加回答
举报