如何删除列表元素之间的逗号?



有谁知道如何删除此列表中的逗号?

[4.1755139724695871, -2.6367224815727237, 2.3407722739111092, 0.36546242292367692]

它必须是这样的:

[ 4.17551397 -2.63672248  2.34077227  0.36546242]

我使用了以下代码:

import numpy as np
def ontbinding(A, x):
N, N = A.shape
e = np.linalg.eig(A)
eigenvector = e[1]
return [np.dot(x.T,(eigenvector[:,i]).T)[0] for i in range(N)]

并给出了以下数组和列表。

A = np.array([[  0.,   0.,   5.,  -2.],
[  0.,  -4.,   7.,   4.],
[  5.,   7.,  18.,   3.],
[ -2.,   4.,   3.,   0.]])
x = np.array([[1.], [2.], [3.], [4.]])

列表本身没有逗号。 这只是插入逗号作为默认输出渲染的打印图像(使用str__repr__生成(。 你可以用这样的对象做的是显式地制作图像,删除逗号,然后打印出来。

list_str = str(list).replace(',', '')
print list_str

这就是你需要的吗?

Ax定义为数组;它们的打印表示形式没有逗号。 您的输入采用列表的形式,需要逗号。

In [39]: A
Out[39]: 
array([[  0.,   0.,   5.,  -2.],
[  0.,  -4.,   7.,   4.],
[  5.,   7.,  18.,   3.],
[ -2.,   4.,   3.,   0.]])
In [40]: x
Out[40]: 
array([[ 1.],
[ 2.],
[ 3.],
[ 4.]])
In [41]: print(A)
[[  0.   0.   5.  -2.]
[  0.  -4.   7.   4.]
[  5.   7.  18.   3.]
[ -2.   4.   3.   0.]]
In [42]: print(x)
[[ 1.]
[ 2.]
[ 3.]
[ 4.]]

您的函数返回一个列表、列表推导的结果[... for i in range(N)].

In [44]: y = ontbinding(A,x)
In [45]: y
Out[45]: 
[4.1755139724695871,
-2.6367224815727233,
2.3407722739111088,
0.36546242292367614]

你可以把它变成一个数组:

In [46]: np.array(y)
Out[46]: array([ 4.17551397, -2.63672248,  2.34077227,  0.36546242])
In [47]: print(np.array(y))
[ 4.17551397 -2.63672248  2.34077227  0.36546242]

此代码必须为您提供正确的答案。

import numpy as np
def ontbinding(A, x):
N, N = A.shape
e = np.linalg.eig(A)
eigenvector = e[1]
return np.array([np.dot(x.T,(eigenvector[:,i]).T)[0] for i in range(N)])

请记住,当您使用理解时,您将自动收到一个列表。当您想将该列表更改为数组时,只需使用:

np.array(list)

最新更新