一、numpy的主要对象
NumPy的主要对象是同构多维数组。例如,在3D空间中的一个点坐标为[1, 3, 5]具有一个轴(只有一层[ ]),轴中有3个元素,所以我们说它长度为3。另外,多维数组中轴的数量即为维度的数量(有多少层[ ],轴就有多少个,维度就有多少个,一般我们常用二维数组矩阵)。
二、ndarray
对象有着许多重要的属性
ndarray.ndim - 数组的轴(维度)的个数。
ndarray.shape - 数组的维度。其类型为一个整数元组,对于一个矩阵(n*m),它的shape就是(n,m)
ndarray.size - 数组元素的总数。对于一个矩阵(n*m),其值就是n*m
ndarray.itemsize - 数组中每个元素的字节大小。例如,对于float64类型,其值为8(64/8)
对于complex32 类型,其值为4(32/8)
针对第一和第二点展开举例:
import numpy as np
a = np.arange(6).reshape(2, 3) #构造一个二维的数组
b = np.array([6., 7., 8.]) #自定义一个一维的数组(即行向量),传入的参数是一个列表类
print(a)
print(a.ndim)
print(a.size)
print(a.itemsize)
print("#########")
print(b)
print(b.ndim)
print(b.size)
print(b.itemsize)
得到:
[[0 1 2]
[3 4 5]]
2
6
4
#########
[6. 7. 8.]
1
3
8
ps:细心的小伙伴会发现其实python中数组与列表在表现形式上只是相差了中间的间隔符“ , ”
三、数组创建
1.你可以使用array函数从常规Python列表或元组中创建数组。
例如:
import numpy as np
a = np.array([1, 2, 3])
b = np.array((4, 5, 6))
print(a)
print("######")
print(b)
得到:
[1 2 3]
######
[4 5 6]
2.array
还可以将序列的序列转换成二维数组,将序列的序列的序列转换成三维数组...
例如:
import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
print(a)
得到:
[[1 2 3]
[4 5 6]] #转换成了一个二维数组
3.也可以在创建时显式指定数组的类型:
例如:
import numpy as np
c = np.array([[1, 2], [3, 4]], dtype=complex)
print(c)
得到:
[[1.+0.j 2.+0.j]
[3.+0.j 4.+0.j]]
4.其他独特的数组创建
函数zeros创建一个全是0组成的数组;函数ones创建一个全是1组成的数组;函数empty创建一个内容随机,默认为float64类型的数组;函数arange创建元素成等差的一维数组。
例如:
import numpy as np
a = np.zeros((2, 3, 4))
b = np.ones((3, 4), dtype=np.int64)
c = np.empty((2, 3))
d = np.arange(10, 30, 5)
e = np.arange(0, 0.6, 0.2)
print(a)
print(b)
print(c)
print(d)
print(e)
得到:
[[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]]
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
[[4.76660078e+180 2.90601812e+132 1.23478419e-259]
[3.00755678e+161 3.12121749e+209 2.88225533e+214]]
[10 15 20 25]
[0. 0.2 0.4]