Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,如何在int之前添加加号?_Python_Arrays_Numpy - Fatal编程技术网

在Python中,如何在int之前添加加号?

在Python中,如何在int之前添加加号?,python,arrays,numpy,Python,Arrays,Numpy,我需要以非常特定的格式生成输出,正整数前面必须有一个加号。我正在使用numpy数组,并尝试了以下内容: if(int(P[pnt])>0): P[pnt] += np.insert(P[pnt-1],0,"+") 但它从不将加号作为数字的一部分,而是作为一个不同的实例 我还尝试将其保存在另一个文件中,然后从那里修改它(使用re.sub()等…),但没有成功:( 我的输出如下所示: (+1 2 -4 +5 -3) (+1 2 3 -5 4) (+1 2 3 -4 5

我需要以非常特定的格式生成输出,正整数前面必须有一个加号。我正在使用numpy数组,并尝试了以下内容:

    if(int(P[pnt])>0):
        P[pnt] += np.insert(P[pnt-1],0,"+")
但它从不将加号作为数字的一部分,而是作为一个不同的实例

我还尝试将其保存在另一个文件中,然后从那里修改它(使用
re.sub()
等…),但没有成功:(

我的输出如下所示:

(+1 2 -4 +5 -3)
(+1 2 3 -5 4)
(+1 2 3 -4 5)
(+1 2 3 4 5)
(+1 +2 -4 +5 -3)
(+1 +2 +3 -5 +4)
(+1 +2 +3 -4 +5)
(+1 +2 +3 +4 +5)
应该是这样的:

(+1 2 -4 +5 -3)
(+1 2 3 -5 4)
(+1 2 3 -4 5)
(+1 2 3 4 5)
(+1 +2 -4 +5 -3)
(+1 +2 +3 -5 +4)
(+1 +2 +3 -4 +5)
(+1 +2 +3 +4 +5)
我可以分享整个代码,如果必要的话

谢谢!!:)

使用
.format()
和。您需要
+
符号选项

可能会发疯:

a = numpy.array([1, 2, -4, 5, -3])
print '(' + ' '.join('{:+}'.format(n) for n in a)) + ')'
# (+1 +2 -4 +5 -3)
使用
.format()
和。您需要
+
符号选项

可能会发疯:

a = numpy.array([1, 2, -4, 5, -3])
print '(' + ' '.join('{:+}'.format(n) for n in a)) + ')'
# (+1 +2 -4 +5 -3)

我不是在一个可以测试它的环境中,而是应该沿着一个轴插入对象,在选择的索引/值之前附加一个新的索引/值


相反,在条件语句中,真实结果可以将p[pnt]设置为“+”+str(p[pnt])。你在寻找最后的字符串数组,是吗

我不在可以测试它的环境中,但应该沿轴插入对象,在选择的索引/值之前附加新的索引/值


相反,在条件语句中,真实结果可以将p[pnt]设置为“+”+str(p[pnt])。你在寻找最后的字符串数组,是吗

补充尼克·T的答案:
您可以编辑numpy的打印选项,因此无论何时打印numpy数组,都将进行格式化

In [191]: np.set_printoptions(formatter={'all':lambda x: '{:+}'.format(x)})

In [198]: np.random.random_integers(-5,5,(5,5))
Out[198]:
array([[+2, +2, +2, -4, +0],
       [-2, -1, +3, +5, -1],
       [-5, -2, -1, -3, +4],
       [+1, +3, -5, +3, -4],
       [+2, -1, +2, +5, +5]])
'all'
定义了此格式应用于的类型。set_printpoptions的docstring将告诉您可以在那里设置哪些内容以获得更具体的格式

     - 'bool'
     - 'int'
     - 'timedelta' : a `numpy.timedelta64`
     - 'datetime' : a `numpy.datetime64`
     - 'float'
     - 'longfloat' : 128-bit floats
     - 'complexfloat'
     - 'longcomplexfloat' : composed of two 128-bit floats
     - 'numpy_str' : types `numpy.string_` and `numpy.unicode_`
     - 'str' : all other strings

 Other keys that can be used to set a group of types at once are::

     - 'all' : sets all types
     - 'int_kind' : sets 'int'
     - 'float_kind' : sets 'float' and 'longfloat'
     - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'
     - 'str_kind' : sets 'str' and 'numpystr'

补充Nick T的答案:
您可以编辑numpy的打印选项,因此无论何时打印numpy数组,都将进行格式化

In [191]: np.set_printoptions(formatter={'all':lambda x: '{:+}'.format(x)})

In [198]: np.random.random_integers(-5,5,(5,5))
Out[198]:
array([[+2, +2, +2, -4, +0],
       [-2, -1, +3, +5, -1],
       [-5, -2, -1, -3, +4],
       [+1, +3, -5, +3, -4],
       [+2, -1, +2, +5, +5]])
'all'
定义了此格式应用于的类型。set_printpoptions的docstring将告诉您可以在那里设置哪些内容以获得更具体的格式

     - 'bool'
     - 'int'
     - 'timedelta' : a `numpy.timedelta64`
     - 'datetime' : a `numpy.datetime64`
     - 'float'
     - 'longfloat' : 128-bit floats
     - 'complexfloat'
     - 'longcomplexfloat' : composed of two 128-bit floats
     - 'numpy_str' : types `numpy.string_` and `numpy.unicode_`
     - 'str' : all other strings

 Other keys that can be used to set a group of types at once are::

     - 'all' : sets all types
     - 'int_kind' : sets 'int'
     - 'float_kind' : sets 'float' and 'longfloat'
     - 'complex_kind' : sets 'complexfloat' and 'longcomplexfloat'
     - 'str_kind' : sets 'str' and 'numpystr'

非常感谢你!但当我尝试这样做时,我得到了以下错误:ValueError:字符串格式说明符中不允许使用符号。如果我尝试将数组变量强制转换为int,那么它根本没有任何作用。我猜,因为我从文件中读取这些值,它认为这些值是字符串?或者可能是因为我的输入中有“+”和“-”,是的,您可能将数据类型作为字符串。因此需要转换数组的数据类型。这应该可以做到:
a=a.astype(int)
,或者您可以在创建数组时设置数据类型。非常感谢!但当我尝试这样做时,我得到了以下错误:ValueError:字符串格式说明符中不允许使用符号。如果我尝试将数组变量强制转换为int,那么它根本没有任何作用。我猜,因为我从文件中读取这些值,它认为这些值是字符串?或者可能是因为我的输入中有“+”和“-”,是的,您可能将数据类型作为字符串。因此需要转换数组的数据类型。这应该可以做到:
a=a.astype(int)
,或者您可以在创建数组时设置数据类型。谢谢!!这是一个很好的暗示!不幸的是,正如我上面提到的,我一直遇到这样的错误:ValueError:字符串格式说明符中不允许使用符号。有什么建议吗?谢谢!!这是一个很好的暗示!不幸的是,正如我上面提到的,我一直遇到这样的错误:ValueError:字符串格式说明符中不允许使用符号。有什么建议吗?