Python 向新数组添加值

Python 向新数组添加值,python,arrays,numpy,Python,Arrays,Numpy,我有一个用零实例化的现有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 这

我有一个用零实例化的现有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
标准数组的元素,但随后使用这些元素作为索引来取消对
标准数组
的引用。下面是一个简单的解决方案

num_arr = np.array(num_list)
for i,element in enumerate(num_arr):
    temp_num = (element-mu)/sigma
    std_array[i]=temp_num
其中,我假设在计算
temp\u num
时,您希望使用循环第一行中
num\u列表的值。注意,我创建了一个名为
num\u arr
的新
numpy.array
。这是因为,我们可以使用替代解决方案,而不是循环,利用:


这相当于循环,但执行速度更快且更简单。

在代码中,您正在迭代
numpy.array
std\u array
的元素,但随后使用这些元素作为索引来取消引用
std\u array
。下面是一个简单的解决方案

num_arr = np.array(num_list)
for i,element in enumerate(num_arr):
    temp_num = (element-mu)/sigma
    std_array[i]=temp_num
其中,我假设在计算
temp\u num
时,您希望使用循环第一行中
num\u列表的值。注意,我创建了一个名为
num\u arr
的新
numpy.array
。这是因为,我们可以使用替代解决方案,而不是循环,利用:


这相当于循环,但执行起来更快更简单。

i
std\u数组中的一个元素,它是
float
<因此,code>Numpy
抱怨您试图使用
float
进行切片,其中:

仅整数、片(
)、省略号(
)、numpy.newaxis(
) 整数或布尔数组是有效的索引

如果您不必为
使用
,则
numpy
可以为您广播计算结果:

(std_array - mu)/sigma
# array([-2.32379001, -2.32379001, -2.32379001, -2.32379001, -2.32379001,
   -2.32379001])

You
i
std\u数组中的一个元素,它是
float
<因此,code>Numpy
抱怨您试图使用
float
进行切片,其中:

仅整数、片(
)、省略号(
)、numpy.newaxis(
) 整数或布尔数组是有效的索引

如果您不必为
使用
,则
numpy
可以为您广播计算结果:

(std_array - mu)/sigma
# array([-2.32379001, -2.32379001, -2.32379001, -2.32379001, -2.32379001,
   -2.32379001])

你能打印这份报表吗?我想看看它有什么回报。np.zeros(len(num_list))@FranJ
[0.0.0.0.0.]
你能打印这个语句吗?我想看看它有什么回报。np.zero(len(num_list))@FranJ
[0.0.0.0.0.]