I believe that Python is doing the operations as floats but since the arrays are dtype=int64, they are being cast back to integers in order to store them.
As @Ynjxsjmh comment mentions, you can explicitly set the dtype of the arrays to float at specification:
a = np.array([[8, 4, -1], [-2, 5, 1], [2, -1, 6]], dtype='float64')
b = np.array([[11], [4], [7]], dtype='float64')
Alternatively, since all elements in an array have the same type, you can just force it by adding a point to one of the numbers:
a = np.array([[8., 4, -1], [-2, 5, 1], [2, -1, 6]])
b = np.array([[11.], [4], [7]])
Answer from ATony on Stack OverflowPython numpy arrays staying integers - Stack Overflow
python - How to create a numpy array of N numbers of the same value? - Stack Overflow
python: converting an numpy array data type from int64 to int - Stack Overflow
Numpy : why cant numpy cast uint in int
NumPy functions are designed to have consistent return dtypes, based only on the dtypes of their arguments. This is an essential feature for avoiding bugs based on strange input values, and lets you accelerate numpy functions with tools like Numba.
Not every signed int can be safely cast into a unsigned int of the same size (e.g., 2 ** 63 is a valid 64-bit unsigned int but not a valid signed int). Likewise, not every signed int can be cast into an unsigned int (consider negative numbers). Hence, NumPy uses the next largest size dtype that can hold both values. 64-bits are the largest size integers supported by numpy, so it uses float64 instead. In contrast, as shown in the other comment, uint16 + int16 can fit in int32.
In contrast, np.arraycoerces dtypes of input arrays. This means it always succeeds.... even if the values cannot be safely represented:
In [31]: np.array(np.arange(2 ** 40, 2 ** 40 + 3), dtype=np.int16) Out[31]: array([0, 1, 2], dtype=int16)More on reddit.com
Use numpy.full():
import numpy as np
np.full(
shape=10,
fill_value=3,
dtype=np.int
)
> array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3])
Very easy 1)we use arange function :-
arr3=np.arange(0,10)
output=array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
2)we use ones function whose provide 1 and after we will do multiply 3 :-
arr4=np.ones(10)*3
output=array([3., 3., 3., 3., 3., 3., 3., 3., 3., 3.])