我有一个numpy数组,我想添加具有相同值的 n 个元素,直到数组的长度达到100。
例如
my_array = numpy.array([3, 4, 5])
请注意,我事先不知道数组的长度。可能是3 <= x <= 100
我想添加(100-x)更多元素,所有元素的值均为9。 我该怎么办?
答案 0 :(得分:3)
请记住,使用numpy数组很重要,您不能像使用列表那样添加元素。因此,将数字添加到数组中并不是最好的做法。
最好是使用一个数组 start ,并用新数据替换元素。例如:
import numpy as np
MY_SPECIAL_NUMBER = 100
my_array = np.array[3, 4, 5]
my_new_array = np.ones(100) * MY_SPECIAL_NUMBER
my_new_array[:my_array.size] = my_array
my_new_array
现在就是您想要的。
答案 1 :(得分:3)
有两种方法可以实现:连接数组或分配数组。
您可以使用np.concatenate
并生成适当大小的数组:
def splitbill(user):
row = c.execute('SELECT * FROM database WHERE user = (?) ORDER BY datetime DESC LIMIT 1', (user,)).fetchall()
print(row[0])
或者,您可以构造一个np.full
数组,然后使用切片符号覆盖一些值:
my_array = # as you defined it
remainder = [9] * (100 - len(my_array))
remainder = np.array(remainder)
a100 = np.concatenate((my_array, remainder))
答案 2 :(得分:0)
如果您“无法”知道神秘阵列的大小:
fillvalue=9
padding=numpy.ones(100)*fillvalue
newarray=numpy.append(myarray, padding)
newarray=newarray[:100]