如何去除NumPy数组元素的空格并转换为指定格式的整数数组
如何去除NumPy数组元素的空格并转换为指定格式的整数数组
嘿,我来帮你搞定这个问题!首先得澄清一点:你看到的数组里的空格并不是元素本身自带的,只是NumPy默认打印格式带来的视觉空格而已。你的核心需求应该是把这个浮点型数组转成整数数组,并且输出成紧凑的、元素之间无空格的格式对吧?
之前你用的.str.lstrip()方法行不通,因为那是pandas Series的专属方法,NumPy数组根本没有这个属性,自然会报错。下面给你分场景提供解决方案:
场景1:原数组是浮点型(和你提供的例子一致)
这种情况只需要两步:转整数 + 格式化输出
import numpy as np # 你的原始浮点数组 original_arr = np.array([ 0. , 14. , 52. , 65. , 14. , 2. , 0. , 0. , 0. , 0. , 19. , 100. , 82. , 2. , 46. , 0. , 0. , 0. , 0. , 0. , 33. , 64. , 80. , 68. , 51. , 0. , 0. , 0. , 0. , 45. , 89. , 75. , 48. , 35. , 0. , 0. , 0. , 0. , 0. , 33. , 90.50490629, 101.1683021 , 76. , 67.8316979 , 21.62414551, 37.66339581, 0. , 0. , 68.49509371, 129.8316979 , 134.8316979 , 106. , 1. , 0. , 0. , 0. , 0. , 6. , 62. , 46. , 38. , 65. , 59. , 84. , 66. , 94. , 121. , 140. , 147. , 143. , 0. , 0. , 0. , 0. , 79. , 113. , 130. , 148. , 152. , 72. , 0. , 0. , 0. , 132. , 131. , 19. , 0. , 0. , 0. ]) # 第一步:把浮点数组转成整数数组 # 这里用np.round()做四舍五入,若想直接截断小数,换成original_arr.astype(int)即可 int_arr = np.round(original_arr).astype(int) # 第二步:格式化成你想要的紧凑字符串格式 formatted_result = f"array([{','.join(map(str, int_arr))}])" # 查看最终效果 print(formatted_result)
运行后就能得到你想要的那种元素之间无空格、逗号直接连接的输出格式。
场景2:原数组是带空格的字符串类型(比如元素是' 0 '、' 14 '这种)
如果你的数组真的是字符串类型且元素带空格,那我们需要先去除每个字符串的空格,再转成整数:
import numpy as np # 假设原数组是带空格的字符串数组 str_arr = np.array([' 0 ', ' 14 ', ' 52.0 ', ' 65. ']) # 遍历每个元素,去除空格后转成整数 int_arr = np.array([int(s.strip()) for s in str_arr]) # 同样格式化输出 formatted_result = f"array([{','.join(map(str, int_arr))}])" print(formatted_result)
这样就能完美解决你的问题啦!
备注:内容来源于stack exchange,提问作者stack offer
相关产品推荐
相关产品推荐

