Python Numpy加法
我有这样一个数组:Python Numpy加法,python,numpy,Python,Numpy,我有这样一个数组: array = [([476301.98163511883, 6176897.129456658],) ([476723.365551495, 6176895.078376785],) ([477124.59457628336, 6176893.28525448],) ([477525.82249430567, 6176891.306532074],) ([477927.0510582989, 6176889.4760845825],)
array = [([476301.98163511883, 6176897.129456658],)
([476723.365551495, 6176895.078376785],)
([477124.59457628336, 6176893.28525448],)
([477525.82249430567, 6176891.306532074],)
([477927.0510582989, 6176889.4760845825],)
([477925.0121537624, 6176487.379134962],)
([477922.97333802003, 6176085.2824224755])]
我只想在第一个数字上加5,在第二个数字上加10。我试过这个
for x in numpy.nditer(array, op_flags=['readwrite']):
x + numpy.array([5, 10])
这将导致TypeError:+:'numpy.ndarray'和'numpy.ndarray'的操作数类型不受支持
然而,像这样的方法很管用
b = numpy.array([0, 10])
x = numpy.array([10, 10])
c = x + b
通过删除额外的括号(缺少逗号,因此不是合法的Python)来调整数据,使其成为7×2数组,然后我将其添加到
5,10
数组中:
import numpy as np
array = np.array([[476301.98163511883, 6176897.129456658],
[476723.365551495, 6176895.078376785],
[477124.59457628336, 6176893.28525448],
[477525.82249430567, 6176891.306532074],
[477927.0510582989, 6176889.4760845825],
[477925.0121537624, 6176487.379134962],
[477922.97333802003, 6176085.2824224755]])
现在:
>>> array
array([[ 476301.98163512, 6176897.12945666],
[ 476723.36555149, 6176895.07837678],
[ 477124.59457628, 6176893.28525448],
[ 477525.82249431, 6176891.30653207],
[ 477927.0510583 , 6176889.47608458],
[ 477925.01215376, 6176487.37913496],
[ 477922.97333802, 6176085.28242248]])
>>> array + np.array([5, 10])
array([[ 476306.98163512, 6176907.12945666],
[ 476728.36555149, 6176905.07837678],
[ 477129.59457628, 6176903.28525448],
[ 477530.82249431, 6176901.30653207],
[ 477932.0510583 , 6176899.47608458],
[ 477930.01215376, 6176497.37913496],
[ 477927.97333802, 6176095.28242248]])
数组添加比元素迭代添加要快得多。额外的参数有什么用?@Aaron Hall我的数据就是这样进来的。我真的无法控制它。我猜这是我问题的根源。谢谢。如何调整数据,使其成为7×2的数组?额外的参数会造成问题。删除它们,我就是这么做的。这不是合法的python,而是我的数据是如何进来的。我对输出的控制有限,我可以让它看起来像这样:[(476301.981635111883,6176897.129456658)(476723.365551495,6176895.078376785)(477124.59457628336,6176893.2852548)]但是我仍然遇到同样的问题在括号组之间输入逗号,然后您可以将它传递给np.array。