python - 调整具有特定值的数组的大小

标签 python numpy

我有一个数组阶段

 [ (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/

相关文章:

python - 打印列表时保持Python在换行后不留空格

python - 雨流计数算法

python - Python中根据不等式选择数组的子集

python - 在Tensorflow中,sampled_softmax_loss和softmax_cross_entropy_with_logits有什么区别

python - SciPy SVD 与 Numpy SVD

python - 基于 Webrequest 在 Airflow 上运行作业

python - 检查相等列表

Python 格式抛出 KeyError

python - 如何在Python中计算平方和?

Python:从 n 维数组中定义的离散分布中抽样