python - 将值添加到新数组
问题描述
我有一个用零实例化的现有 python 数组。如何迭代和更改值?
我无法遍历和更改 Python 数组的元素?
num_list = [1,2,3,3,4,5,]
mu = np.mean(num_list)
sigma = np.std(num_list)
std_array = np.zeros(len(num_list))
for i in std_array:
temp_num = ((i-mu)/sigma)
std_array[i]=temp_num
这是错误:只有整数、切片 ( :
)、省略号 ( ...
)、numpy.newaxis ( None
) 和整数或布尔数组是有效索引
解决方案
在您的代码中,您正在迭代 的元素numpy.array
std_array
,然后将这些元素用作取消引用的索引std_array
。一个简单的解决方案如下。
num_arr = np.array(num_list)
for i,element in enumerate(num_arr):
temp_num = (element-mu)/sigma
std_array[i]=temp_num
我假设您想num_list
在计算时使用循环第一行中的值temp_num
。请注意,我创建了一个新的numpy.array
被调用num_arr
。这是因为我们可以使用利用广播的替代解决方案,而不是循环:
std_array = (num_arr-mu)/sigma
这相当于循环,但执行速度更快且更简单。
推荐阅读
- sql - 消息:语法错误,意外的 '(',期望标识符 (T_STRING) 或变量 (T_VARIABLE) 或 '{' 或 '$'
- python - 查找表示为列表的边
- laravel - 我是多对多关系,获取数据透视表的ID
- kubernetes - kubernetes kubectl 中的生成器是什么?
- sql - 如何在 Oracle sql 中检索所有父行和子行人口?
- mysql - 如何在 Laravel 中获得相同 id 值的总和?
- python - Erasthotenes 的递归筛选返回无
- java - 能不能给父线程抛出异常
- linux - 在 shell 脚本中使用函数时如何记录压缩的 zip 文件
- c# - 从 C# lib 将包含字符串的结构返回给 c++ 程序