matrix_index (user) |
Returns the keys associated with each axis of the matrices. |
matrix_directed_weighted (user[, interaction]) |
Returns a directed, weighted matrix for call, text and call duration. |
matrix_directed_unweighted (user) |
Returns a directed, unweighted matrix where an edge exists if there is at least one call or text. |
matrix_undirected_weighted (user[, interaction]) |
Returns an undirected, weighted matrix for call, text and call duration where an edge exists if the relationship is reciprocated. |
matrix_undirected_unweighted (user) |
Returns an undirected, unweighted matrix where an edge exists if the relationship is reciprocated. |
clustering_coefficient_unweighted (user) |
The clustering coefficient of the user in the unweighted, undirected ego network. |
clustering_coefficient_weighted (user[, …]) |
The clustering coefficient of the user’s weighted, undirected network. |
assortativity_indicators (user) |
Computes the assortativity of indicators. |
assortativity_attributes (user) |
Computes the assortativity of the nominal attributes. |
Networks are generated using User.network
, with neighbors sorted by name (see matrix_index()
for more details).
We load the following examples using the network user from the bandicoot source directory using:
>>> ego = bc.read_csv('ego', 'bandicoot/tests/samples/network', network=True)
matrix_directed_weighted()
returns a directed,
weighted matrix for call, text and call duration. By default, interaction is
None
: the weight is the number of 30 minutes periods with at least one
call or one text. Summing call and texts is not accurate, counting periods of
activity leads to a better understanding of the interactions.
>>> bc.network.matrix_index(ego)
['ego', 'A', 'B', 'D', 'F', 'H']
>>> m = bc.network.matrix_directed_weighted(ego)
>>> m
[[0, 3, 2, 1, 2, 0],
[1, 0, 1, 0, 0, 0],
[2, 1, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0]]
The cell m[0][1]
, equal to 3, is the number of interactions from ego (index 0) to
A (index 1).
A None
cell means that we have no information of the interactions between
two users, who are both out of the network.
matrix_directed_unweighted()
returns a directed,
unweighted matrix where an edge exists if there is at least one call or text,
in both direction.
>>> bc.network.matrix_directed_unweighted(ego)
[[0, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 0, 0],
[1, 1, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0]]
matrix_undirected_weighted()
returns an undirected,
weighted matrix for call, text and call duration. An edge only exists if the
relationship is reciprocated. It counts the total number of interactions in
both directions.
>>> bc.network.matrix_undirected_weighted(ego)
[[0, 4, 4, 0, 3, 0],
[4, 0, 2, 0, 0, 0],
[4, 2, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[3, 0, 0, 0, 0, 2],
[0, 0, 0, 0, 2, 0]]
matrix_undirected_unweighted()
returns an undirected,
unweighted matrix where an edge exists if the relationship is reciprocated.
>>> bc.network.matrix_undirected_unweighted(ego)
[[0, 1, 1, 0, 1, 0],
[1, 0, 1, 0, 0, 0],
[1, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[1, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 1, 0]]