要在中心打印数组索引,我尝试了numpy.defchararray.center()但这仅适用于字符串。因此输出为['-abc-','-a--']等。我希望我的输出以浮点值居中]
arr2 = np.array(list(map(float, input().split())))
print(arr2)
arr2 = [1.2 2.2 5.5 7.1]
print(np.char.center(np.floor(arr2), 4))
In [169]: alist = [1.2, 2.2, 5.5, 7.1]
In [170]: arr2 = np.array(alist)
In [171]: arr2
Out[171]: array([1.2, 2.2, 5.5, 7.1])
将数组转换为字符串dtype:
In [172]: arr2.astype(str)
Out[172]: array(['1.2', '2.2', '5.5', '7.1'], dtype='<U32')
In [173]: np.char.center(arr2.astype(str),10, '-')
Out[173]:
array(['---1.2----', '---2.2----', '---5.5----', '---7.1----'],
dtype='<U10')
对于字符串操作,使用列表和列表理解通常与数组方法一样好。 np.char
函数仅将字符串方法应用于数组的元素,而且速度不快。
In [174]: [('%.2f'%i).center(10,'-') for i in alist]
Out[174]: ['---1.20---', '---2.20---', '---5.50---', '---7.10---']
在列表上进行迭代比在数组上进行迭代要快。
[较新的format
方法具有居中选项:
In [175]: ['{:-^10.2f}'.format(i) for i in alist]
Out[175]: ['---1.20---', '---2.20---', '---5.50---', '---7.10---']