<｜begin▁of▁sentence｜>### Instruction:
Given a 2D NumPy array representing an adjacency matrix where the array is: np.array([[0, 1, 1], [1, 0, 0], [1, 0, 0]]), how would you use the 'from_numpy_array' function in NetworkX to create a new graph and then print out its nodes and edges along with their attributes?
### Response:
import networkx as nx
import numpy as np

# Define a 2D NumPy array representing an adjacency matrix
A = np.array([[0, 1, 1], [1, 0, 0], [1, 0, 0]])

# Create a graph from the adjacency matrix
G = nx.from_numpy_array(A)

# Get information about the graph
nodes = G.nodes(data=True)
edges = G.edges(data=True)

# Print out the nodes and edges with their attributes
print('Nodes:', list(nodes))
print('Edges:', list(edges))
<|EOT|>
