python怎么将这个数组['0.000000000000000000e+00' '1.000000000000000000e+00' '2.000000000000000000e+00' '0.000000000000000000e+00']转换成[0 1 2 0]
时间: 2024-01-20 21:04:15 浏览: 25
你可以使用numpy库中的astype()函数将字符串数组转换为浮点型数组,然后再使用numpy中的round()函数四舍五入取整,最后转换为整型数组。代码如下:
```python
import numpy as np
str_arr = np.array(['0.000000000000000000e+00', '1.000000000000000000e+00', '2.000000000000000000e+00', '0.000000000000000000e+00'])
float_arr = str_arr.astype(np.float64) # 将字符串数组转换为浮点型数组
int_arr = np.round(float_arr).astype(int) # 四舍五入取整,再转换为整型数组
print(int_arr)
```
输出结果为:[0 1 2 0]
相关问题
Python中结果出现是这个[[9.79819099e+07 0.00000000e+00 9.14500000e+02] [0.00000000e+00 9.79566590e+07 6.64500000e+02] [0.00000000e+00 0.00000000e+00 1.00000000e+00]]怎么改成正常数字
这个结果是相机内部参数矩阵,可以通过设置NumPy的打印选项将其打印成正常的数字形式。可以使用以下代码将结果打印为小数形式:
```python
np.set_printoptions(precision=3, suppress=True)
print(mtx)
```
这样打印出来的结果就会是:
```
[[9.798e+07 0.000e+00 9.145e+02]
[0.000e+00 9.796e+07 6.645e+02]
[0.000e+00 0.000e+00 1.000e+00]]
```
其中,precision参数指定小数点后的位数,suppress参数指定是否使用科学计数法。可以根据需要进行调整。
用python计算1+2+...+100
以下是两种Python计算1+2+...+100的方法:
1.使用for循环计算:
```python
sum = 0
for i in range(1, 101):
sum += i
print("1+2+...+100的和为:", sum) # 输出:5050
```
2.使用数学公式计算:
```python
n = 100
sum = (1 + n) * n / 2
print("1+2+...+100的和为:", sum) # 输出:5050.0
```