如何将前导零添加到数组的所有元素?

亚丁

我有一个numpy的数组:

   [[4907., 4907., 4907., ..., 4907., 4907., 4907.],
   [4907., 4907., 4907., ..., 4907., 4907., 4907.],
   [4907., 4907., 4907., ..., 4907., 4907., 4907.]]

我希望向该数组的每个元素添加一个特定数量的前导零,以便该数组如下所示:

  [[0004907., 0004907., 0004907., ..., 0004907., 0004907., 0004907.],
   [0004907., 0004907., 0004907., ..., 0004907., 0004907., 0004907.],
   [0004907., 0004907., 0004907., ..., 0004907., 0004907., 0004907.]]

什么是最有效,最快的方法?

奥尼尔

这是不可能的。Python解释器会自动将数字转换00044

唯一的方法是将所有内容都转换为字符串。如果要对数组的内容进行数学运算,可以将其转换回浮点数。

arr = [
    [4907., 4907., 4907.],
    [4907., 4907., 4907.],
    [4907., 4907., 4907.]
]

new_arr = []

for i in range(0, len(arr)):
    new_arr.append([])
    for j in range(0, len(arr)):
        nr = arr[i][j]
        new_arr[i].append(str(nr).zfill(len(str(nr)) + 3))


print(new_arr)


输出:

[['0004907.0', '0004907.0', '0004907.0'], ['0004907.0', '0004907.0', '0004907.0'], ['0004907.0', '0004907.0', '0004907.0']]

编辑:但是,如果您必须大量使用此数组,那么实现此效果的最优雅的方法是在我看来要创建一个类。这会感觉更自然,您不必每次都在字符串之间进行转换和浮动。因此也更快。

#Special class
class SpecialArray:
    #Your array
    arr = [
        [4907., 4907., 4907.],
        [4907., 4907., 4907.],
        [4907., 4907., 4907.]
    ]


    #Append leading zero's when class is initiated
    def __init__(self):
        temp_arr = []

        for i in range(0, len(self.arr)):
            temp_arr.append([])
            for j in range(0, len(self.arr)):
                nr = self.arr[i][j]
                temp_arr[i].append(str(nr).zfill(len(str(nr)) + 3))

        self.arr = temp_arr

    #Print out array
    def print(self):
        print(self.arr)

    #Get a value to to math
    #If asString is true, you get back the string with leading zero's (not for math)
    def get(self, x, y, asString = False):
        if not asString:
            return float(self.arr[x][y])
        else:
            return self.arr[x][y]

    #TODO: Make function to append etc here

###Rest of your program
def main():
    #Initiate your array
    arr = SpecialArray()

    #Print out whole array
    arr.print()
    #Output:
    #[['0004907.0', '0004907.0', '0004907.0'], ['0004907.0', '0004907.0', '0004907.0'], ['0004907.0', '0004907.0', '0004907.0']]


    #Print out one element
    print(arr.get(1, 2, True))
    #Output:
    #0004907.0

    #Get one element and increase by one (do math)
    x = arr.get(1,2) + 1
    print(x)
    #Output:
    #4908.0

main()


本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

FullCalendar - 如何将前导零添加到 getUTCMinutes 函数

来自分类Dev

将前导零添加到数字

来自分类Dev

将前导零添加到列

来自分类Dev

如何将MongoDB中的元素数组添加到现有文档中的数组?

来自分类Dev

如何将多个元素添加到数组?

来自分类Dev

如何将元素添加到数组中的对象

来自分类Dev

如何将元素添加到SSJS数组?

来自分类Dev

如何将元素添加到数组

来自分类Dev

如何将元素添加到 numpy nd 数组?

来自分类Dev

如何将类名添加到以特定ID开头的所有元素?

来自分类Dev

如何将新元素添加到现有数组中

来自分类Dev

如何将ngClick添加到现有元素

来自分类Dev

如何将一个结构数组的所有元素添加到另一个结构数组中?

来自分类Dev

如何将非零元素添加到噪声中?

来自分类Dev

如何将索引添加到数组而不是让键从零开始?

来自分类Dev

将前导零添加到二进制数组C的十进制

来自分类Dev

如何将零添加到整数Vec之前?

来自分类Dev

如何将两个日期之间的所有日期添加到Powershell中的数组

来自分类Dev

如何将类添加到具有不在数组中的类名称的元素中

来自分类Dev

如何将类添加到具有不在数组中的类名称的元素中

来自分类Dev

将前导零添加到Python中的数字列表

来自分类Dev

将前导零添加到varchar字段

来自分类Dev

将前导零添加到mySQL列

来自分类Dev

将前导零添加到特定行

来自分类Dev

将前导零添加到mySQL列

来自分类Dev

将前导零添加到第一列

来自分类Dev

Python 将前导零添加到时间字段

来自分类Dev

如何将前一个数组元素的值添加到当前元素

来自分类Dev

如何将Java数组元素添加到Java脚本数组中?

Related 相关文章

热门标签

归档