search
Search
Login
Unlock 100+ guides
menu
menu
web
search toc
close
Comments
Log in or sign up
Cancel
Post
account_circle
Profile
exit_to_app
Sign out
What does this mean?
Why is this true?
Give me some examples!
search
keyboard_voice
close
Searching Tips
Search for a recipe:
"Creating a table in MySQL"
Search for an API documentation: "@append"
Search for code: "!dataframe"
Apply a tag filter: "#python"
Useful Shortcuts
/ to open search panel
Esc to close search panel
to navigate between search results
d to clear all current filters
Enter to expand content preview
icon_star
Doc Search
icon_star
Code Search Beta
SORRY NOTHING FOUND!
mic
Start speaking...
Voice search is only supported in Safari and Chrome.
Navigate to
chevron_leftDocumentation
Method argpartition
NumPy Random Generator4 topics
Method choiceMethod dotMethod finfoMethod histogramMethod iinfoMethod maxMethod meanMethod placeMethod rootsMethod seedMethod uniformMethod viewMethod zerosMethod sumObject busdaycalendarMethod is_busdayProperty dtypeMethod uniqueMethod loadtxtMethod vsplitMethod fliplrMethod setdiff1dMethod msortMethod argsortMethod lexsortMethod aroundMethod nanmaxMethod nanminMethod nanargmaxMethod nanargminMethod argmaxMethod argminProperty itemsizeMethod spacingMethod fixMethod ceilMethod diffProperty flatProperty realProperty baseMethod flipMethod deleteMethod amaxMethod aminMethod logical_xorMethod logical_orMethod logical_notMethod logical_andMethod logaddexpMethod logaddexp2Method logspaceMethod not_equalMethod equalMethod greater_equalMethod lessMethod less_equalMethod remainderMethod modMethod emptyMethod greaterMethod isfiniteMethod busday_countMethod repeatMethod varMethod random_sampleMethod randomMethod signMethod stdMethod absoluteMethod absMethod sortMethod randintMethod isrealMethod linspaceMethod gradientMethod allMethod sampleProperty TProperty imagMethod covMethod insertMethod logMethod log1pMethod exp2Method expm1Method expMethod arccosMethod cosMethod arcsinMethod sinMethod tanMethod fromiterMethod trim_zerosMethod diagflatMethod savetxtMethod count_nonzeroProperty sizeProperty shapeMethod reshapeMethod resizeMethod triuMethod trilMethod eyeMethod arangeMethod fill_diagonalMethod tileMethod saveMethod transposeMethod swapaxesMethod meshgridProperty mgridMethod rot90Method log2Method radiansMethod deg2radMethod rad2degMethod degreesMethod log10Method appendMethod cumprodProperty nbytesMethod tostringProperty dataMethod modfMethod fmodMethod tolistMethod datetime_as_stringMethod datetime_dataMethod array_splitMethod itemsetMethod floorMethod put_along_axisMethod cumsumMethod bincountMethod putMethod putmaskMethod takeMethod hypotMethod sqrtMethod squareMethod floor_divideMethod triMethod signbitMethod flattenMethod ravelMethod rollMethod isrealobjMethod diagMethod diagonalMethod quantileMethod onesMethod iscomplexobjMethod iscomplexMethod isscalarMethod divmodMethod isnatMethod percentileMethod isnanMethod divideMethod addMethod reciprocalMethod positiveMethod subtractMethod medianMethod isneginfMethod isposinfMethod float_powerMethod powerMethod negativeMethod maximumMethod averageMethod isinfMethod multiplyMethod busday_offsetMethod identityMethod interpMethod squeezeMethod get_printoptionsMethod savez_compressedMethod savezMethod loadMethod asfarrayMethod clipMethod arrayMethod array_equivMethod array_equalMethod frombufferMethod set_string_functionMethod matmulMethod genfromtxtMethod fromfunctionMethod asscalarMethod searchsortedMethod full_likeMethod fullMethod shares_memoryMethod ptpMethod digitizeMethod argwhereMethod geomspaceMethod zeros_likeMethod fabsMethod flatnonzeroMethod vstackMethod dstackMethod fromstringMethod tobytesMethod expand_dimsMethod ranfMethod arctanMethod itemMethod extractMethod compressMethod chooseMethod asarrayMethod asmatrixMethod allcloseMethod iscloseMethod anyMethod corrcoefMethod truncMethod prodMethod crossMethod true_divideMethod hsplitMethod splitMethod rintMethod ediff1dMethod lcmMethod gcdMethod cbrtMethod flipudProperty ndimMethod array2stringMethod set_printoptionsMethod whereMethod hstack
Char32 topics
check_circle
Mark as learned
thumb_up
0
thumb_down
0
chat_bubble_outline
0
Comment
auto_stories Bi-column layout
settings

NumPy | dot Method

schedule Aug 11, 2023
Last updated
local_offer
PythonNumPy
Tags
mode_heat
Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!

NumPy's dot(~) is an extremely useful method that can be used to compute the product between:

  • scalar and scalar

  • vector and vector (dot product)

  • matrix and vector

  • matrix and matrix

Parameters

1. a | number or array_like

The first argument.

2. b | number or array_like

The second argument.

Return value

The following table summaries what operation is performed as well as the return type:

a

b

operation

Return type

scalar

scalar

Scalar multiplication

number

1D array

1D array

Vector dot product

number

2D array

1D array

Matrix-vector product

1D Numpy array

2D array

2D array

Matrix-matrix multiplication

2D Numpy array

n-D array

n-D array

Batch products

n-D Numpy array

Examples

Dotting two numbers (scalar and scalar)

np.dot(2, 3)
6
WARNING

Avoid this for scalar multiplication. If you just want to multiply two scalar numbers, just use the standard 2 * 3 - it's faster and clearer.

Dotting two arrays (vector and vector)

# (1 * 3) + (2 * 4) = 11
np.dot([1,2], [3,4])
11

Mathematically, we're doing the following:

$$\begin{pmatrix} 1\\ 3\\ \end{pmatrix} \cdot \begin{pmatrix} 2\\ 4\\ \end{pmatrix}= 11$$

Just as a side note, the parameters just have to be array-like; we can use NumPy arrays as well:

x = np.array([1,2])
y = np.array([3,4])
np.dot(x, y)
11

Matrix-vector multiplication

X = np.array([[1,2],[3,4]])
y = np.array([5,6])
np.dot(X,y)
array([17, 39])

Mathematically, we're doing the following:

$$\begin{pmatrix} 1&2\\ 3&4\\ \end{pmatrix} \begin{pmatrix} 5\\ 6\\ \end{pmatrix}= \begin{pmatrix} 17\\ 39\\ \end{pmatrix}$$

Matrix-matrix multiplication

x = [[1,0], [0,1]]
y = [[2,2], [2,2]]
np.dot(x, y)
array([[2, 2],
       [2, 2]])

Mathematically, we're doing the following:

$$\begin{pmatrix} 1&0\\ 0&1\\ \end{pmatrix} \begin{pmatrix} 2&2\\ 2&2\\ \end{pmatrix}= \begin{pmatrix} 2&2\\ 2&2\\ \end{pmatrix}$$

Always remember that parameters just have to be array-like; we can use NumPy arrays as well:

x = np.array([[1,0], [0,1]])
y = np.array([[2,2], [2,2]])
np.dot(x, y)
array([[2, 2],
       [2, 2]])
WARNING

Avoid this for matrix multiplication. If you want to take the product of two matrices, use NumPy's matmul(~) method or the @ notation instead.

Batch products

The dot(~) method can be used to compute multiple products at once, like follows:

x = [ [[1,0], [0,1]], [[1,1], [1,1]] ]
y = [3,4]
np.dot(x,y)
array([[3, 4],
       [7, 7]])

In this example, the variable $x$ holds the following two matrices:

$$\begin{pmatrix} 1&0\\ 0&1\\ \end{pmatrix} \;\;\;\; \begin{pmatrix} 1&1\\ 1&1\\ \end{pmatrix}$$

The final line, np.dot(x,y), is performing the following mathematical operations:

$$\begin{pmatrix} 1&0\\ 0&1\\ \end{pmatrix} \begin{pmatrix} 3\\ 4\\ \end{pmatrix}= \begin{pmatrix} 3\\ 4\\ \end{pmatrix}$$
$$\begin{pmatrix} 1&1\\ 1&1\\ \end{pmatrix} \begin{pmatrix} 3\\ 4\\ \end{pmatrix}= \begin{pmatrix} 7\\ 7\\ \end{pmatrix}$$

Note that batch products also for vector-vector product and matrix-matrix product as well.

robocat
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!