Python 向新数组添加值
我有一个用零实例化的现有python数组。如何迭代并更改这些值 我不能遍历和更改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 这
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])
Youi
是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.]