Py学习  »  Python

如何对数组中的每个元素执行操作,并在Python中向新数组添加新值?

Thomas • 4 年前 • 1988 次点击  

到目前为止,我已经尝试了以下几点:

import numpy as np

array = np.random.rand(10)

empty_array = np.zeros(10)

for elem in array:

    new_val = elem**2

其中,empty_array是一个由10个元素组成的数组,设置为零,我的逻辑类似于初始化一个空列表,以便在循环另一个列表或数组时添加元素。我一直在思考如何用“array”中的元素平方替换空数组中的相应元素。

任何关于如何做到这一点或更好的方法的帮助都将不胜感激!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127921
文章 [ 2 ]  |  最新文章 4 年前
KH.dev
Reply   •   1 楼
KH.dev    4 年前

可以附加新值,如下所示:

import numpy as np

array = np.random.rand(10)
new_array = []
for elem in array:
    new_array.append(elem ** 2)

或者使用列表:

import numpy as np

array = np.random.rand(10)
new_array = [e**2 for e in array]
chepner
Reply   •   2 楼
chepner    4 年前

使用Numpy的一个原因是它在此类情况下的表现力。

>>> import numpy as np
>>> a = np.random.rand(10)
>>> a
array([0.94797029, 0.39628409, 0.64609633, 0.44994779, 0.23083464,
       0.60191075, 0.71651581, 0.78152364, 0.05516691, 0.22452054])
>>> a **2
array([0.89864768, 0.15704108, 0.41744046, 0.20245301, 0.05328463,
       0.36229656, 0.5133949 , 0.6107792 , 0.00304339, 0.05040947])

您不必迭代原始数组并逐步构建新数组:只需将数组本身“平方”。