我想将d
分配给a
,或者如果a
是None
,则分配b
,或者如果b
也分配给None
c
,a = b = c = np.array([1])
d = a or b or c
。这有效:
a = b = c = np.array([1, 2])
d = a or b or c
但是,这不是:
d = a or b or c
ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()
显然,或者对于具有多个元素的数组,按元素使用。我该怎么做
<td rowspan="31" style="background-color:Transparent;min-width: 19.14mm;WIDTH:21.26mm;" class="Ac165936899664594908cfec8fa25b2a0270c" height="548"><div style="word-wrap:break-word;white-space:pre-wrap;" class="Ac165936899664594908cfec8fa25b2a0270"> XXXXX </div></td>
带有NumPy数组?
答案 0 :(得分:6)
我想将
d
分配给a
,或者如果a
是None
,则分配b
,或者如果b
也分配给None
c
,None
。
然后从字面上检查d = a if a is not None else b if b is not None else c
:
a = np.array([0])
b = "wat"
c = a or b
您的版本适用于单元素数组的事实是其真实性的副作用。它不会满足您的期望:
c
"wat"
现在将是a
,即使None
不是gst-launch-1.0 -e rtspsrc location=rtsp_url1 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_0 \
rtspsrc location=rtsp_url2 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_1 \
rtspsrc location=rtsp_url3 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_2 \
rtspsrc location=rtsp_url4 ! rtph264depay ! h264parse ! decodebin ! videoconvert ! m.sink_3 \
videomixer name=m sink_1::xpos=1280 sink_2::ypos=720 sink_3::xpos=1280 sink_3::ypos=720 ! x264enc ! mp4mux ! filesink location=./out.mp4 sync=true
。