<｜begin▁of▁sentence｜>### Instruction:
Given a graph with weighted edges [(0, 1, 5), (1, 2, 2), (2, 3, -3), (1, 3, 10), (3, 2, 8)], how would you use NetworkX's floyd_warshall_numpy function to find the shortest path distance matrix, where the weight of the edges reflects the distance between nodes?
### Response:
import networkx as nx
import numpy as np

# Create a weighted directed graph
G = nx.DiGraph()
G.add_weighted_edges_from([(0, 1, 5), (1, 2, 2), (2, 3, -3), (1, 3, 10), (3, 2, 8)])

# Execute Floyd's algorithm to find all-pairs shortest path lengths
# The result is a NumPy array
distance = nx.floyd_warshall_numpy(G)

# Print the result as 2D array
print("Shortest path matrix:\n", distance)
<|EOT|>
