我有一个数组阶段
[ (3.0535400914168154, 0.371345899229, 0.312953794281, -0.0125231427371, 0.0)
(3.056684825749555, 0.373971853521, 0.313682391117, -0.0264543909236, 0.0)
(3.0598295600822953, 0.376861295611, 0.314535588286, -0.041169303628, 0.0)]
我想用 resize 方法调整大小
phase.resize(MAXLINE)
我得到了这个结果
[ (3.0535400914168154, 0.371345899229, 0.312953794281, -0.0125231427371, 0.0)
(3.056684825749555, 0.373971853521, 0.313682391117, -0.0264543909236, 0.0)
(3.0598295600822953, 0.376861295611, 0.314535588286, -0.041169303628, 0.0)
(0.0, 0.0, 0.0, 0.0, 0.0) (0.0, 0.0, 0.0, 0.0, 0.0)
(0.0, 0.0, 0.0, 0.0, 0.0)]
我想知道是否可以设置一个特定值(Nan 或 -99999)而不是默认值 0.0
最佳答案
假设您希望数组的形状为 (MAXLINE,5)
并且您的数组是二维数组而不是元组列表(正如您问题中的格式建议),这会起作用:
import numpy as np
MAXLINE = 4
a=np.array([ [3.0535400914168154, 0.371345899229, 0.312953794281, -0.0125231427371, 0.0],
[3.056684825749555, 0.373971853521, 0.313682391117, -0.0264543909236, 0.0],
[3.0598295600822953, 0.376861295611, 0.314535588286, -0.041169303628, 0.0]])
np.append(a,np.ones((MAXLINE-a.shape[0],a.shape[1]))*np.NAN,axis=0)
产生:
array([[ 3.05354009, 0.3713459 , 0.31295379, -0.01252314, 0. ],
[ 3.05668483, 0.37397185, 0.31368239, -0.02645439, 0. ],
[ 3.05982956, 0.3768613 , 0.31453559, -0.0411693 , 0. ],
[ nan, nan, nan, nan, nan]])
解释:
np.ones()
采用形状参数,因此我添加了足够多的行来构成最终形状 (MAXLINE,5)
,其中 5 是数字a
的列数(即:a.shape[1]
)。
在 np.append()
中,axis=0
参数告诉 numpy 添加行。如果你没有这个,它会展平数组。
当然,您可以将 np.NAN
替换为您喜欢的任何值。
关于python - 调整具有特定值的数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30503792/