gpt4 book ai didi

python - 表示用于按列操作的 2-dim 矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:15 24 4
gpt4 key购买 nike

我创建了一个列表来表示一个二维矩阵:

mylist = []
while (some condition):
x1 = ...
x2 = ...
mylist.append([x1,x2])

我想测试矩阵第二列中的每个条目是否大于 0.45,但我遇到了一些困难:

>>> mylist
[[1, 2], [1, -3], [-1, -2], [-1, 2], [0, 0], [0, 1], [0, -1]]
>>> mylist[][1] > 0.4
File "<stdin>", line 1
mylist[][1] > 0.4
^
SyntaxError: invalid syntax
>>> mylist[:,1] > 0.4
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not tuple

鉴于 mylist 是一个子列表列表,我如何指定其所有子列表的所有第二个组件?

选择list来表示2-dim矩阵好吗?我选择它,只是因为矩阵的大小是动态确定的。你会推荐什么?

谢谢!

最佳答案

像这样使用 all():

>>> lst = [[1, 2], [1, -3], [-1, -2], [-1, 2], [0, 0], [0, 1], [0, -1]]
>>> all(x > 0.45 for _, x in lst)
False

如果你需要一个 bool 值列表,那么使用列表理解:

>>> [x > 0.45 for _, x in lst]
[True, False, False, True, False, True, False]

mylist[][1] 是一个无效的语法,但如果你可以使用 NumPy,那么你可以这样做:

In [1]: arr = np.array([[1, 2], [1, -3], [-1, -2], [-1, 2], [0, 0], [0, 1], [0, -1]])

In [2]: all(arr[:,1] > 0.45)
Out[2]: False

In [4]: arr[:,1] > .45
Out[4]: array([ True, False, False, True, False, True, False], dtype=bool)

关于python - 表示用于按列操作的 2-dim 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com