Skip to content

Commit a5c557a

Browse files
committed
Avoid implicitly converting 2-D arrays of single value to scalars
NumPy 2 raises deprecation warnings about converting an ndarray with dimension > 0 of values likle `[[0]]` to a scalar value like `0`. The solution is to get the value using `.item()`.
1 parent 1a74a80 commit a5c557a

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

cirq-core/cirq/sim/simulator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -912,7 +912,7 @@ def __repr__(self) -> str:
912912
def __str__(self) -> str:
913913
def bitstring(vals):
914914
separator = ' ' if np.max(vals) >= 10 else ''
915-
return separator.join(str(int(v)) for v in vals)
915+
return separator.join(str(int(v.item())) for v in vals)
916916

917917
results = sorted([(key, bitstring(val)) for key, val in self.measurements.items()])
918918
if not results:

examples/bb84.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def main(num_qubits=8):
128128
repetitions = 1
129129

130130
result = cirq.Simulator().run(program=circuit, repetitions=repetitions)
131-
result_bitstring = bitstring([int(result.measurements[str(q)]) for q in qubits])
131+
result_bitstring = bitstring([int(result.measurements[str(q)][0].item()) for q in qubits])
132132

133133
# Take only qubits where bases match
134134
obtained_key = ''.join(
@@ -158,14 +158,14 @@ def main(num_qubits=8):
158158
# Run simulations.
159159
repetitions = 1
160160
result = cirq.Simulator().run(program=alice_eve_circuit, repetitions=repetitions)
161-
eve_state = [int(result.measurements[str(q)]) for q in qubits]
161+
eve_state = [int(result.measurements[str(q)][0].item()) for q in qubits]
162162

163163
eve_bob_circuit = make_bb84_circ(num_qubits, eve_basis, bob_basis, eve_state)
164164

165165
# Run simulations.
166166
repetitions = 1
167167
result = cirq.Simulator().run(program=eve_bob_circuit, repetitions=repetitions)
168-
result_bitstring = bitstring([int(result.measurements[str(q)]) for q in qubits])
168+
result_bitstring = bitstring([int(result.measurements[str(q)][0].item()) for q in qubits])
169169

170170
# Take only qubits where bases match
171171
obtained_key = ''.join(

0 commit comments

Comments
 (0)