Python: Numpy学习笔记

numpy(Numerical Python)

numpy提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

python之numpy的基本使用
记得import numpy噢

创建ndarray数组:

data2=[[1,2,3],[4,5,6]]
y=numpy.array(data2)

print(y)
print(y.dtype)  #打印数组的数据类型
print(y.ndim)   #打印数组的维度
print(y.shape)  #打印数组各个维度的长度,注意y.shape是一个元组

>>>
[[1 2 3]
 [4 5 6]]
int64
2
(2, 3)


创建数组:
1.使用zeros, ones, empty来创建数组:
zeros创建元素全为0的数组
ones创建元素全为1的数组
empty创建没有元素的数组

x=numpy.zeros(5)
print(x)
x=numpy.zeros((2,3))
print(x)

>>>
[0. 0. 0. 0. 0.]
[[0. 0. 0.]
 [0. 0. 0.]]

2.使用arange生成连续元素
x=numpy.arange(6)
print(x)
x=numpy.arange(0,6,2)
print(x)

>>>
[0 1 2 3 4 5]
[0 2 4]


指定ndarray数组元素的类型:
常用类型: int64,float64

x=numpy.array([1.0,3.2,4.5],dtype=numpy.float64)
print(x)
print(x.dtype)

>>>
[1.  3.2 4.5]
float64

使用astype复制数组,并转化类型
x=numpy.array([1.0,3.2,4.5],dtype=numpy.float64)
y=x.astype(numpy.int64)
print (y)

>>>
[1 3 4]
将字符串元素转换为数值元素:
x=numpy.array(['1','2','3'],dtype=numpy.string_)
y=x.astype(numpy.int64)  #若转换失败经常会报错
print(y)

>>>
[1,2,3]

使用其他数组的数据类型作为参数:
x = numpy.array([ 1., 2.6,3. ],dtype = numpy.float32);
y = numpy.arange(3,dtype=numpy.int32);
print (y)
print (y.astype(x.dtype)) #就在这一步
 
[0 1 2]
[ 0.  1.  2.]

ndarray的矢量化计算:
矢量运算:相同大小的数组键间的运算应用在元素上
矢量和标量运算:“广播”— 将标量“广播”到各个元素

x=numpy.array([1,2,3])
y=numpy.array([2,1,4])

print(x*2)
print(x>2)
print(x+y)
print(x>y)

>>>
[2 4 6]
[False False  True]
[3 3 7]
[False  True False]


ndarray数组的基本索引和切片:
索引
x=numpy.array(([1,2,3],[4,5,6]))
print(x[0][1])
y=x[0]
print(y)

>>>
2
[1 2 3]


注意:  :右端是开区间
一维数组的切片:
x=numpy.array([1,2,3,4,5])
print(x[1:3])
print(x[0:3])
print(x[:3])
print(x[2:])
print(x[::2])

>>>
[2 3]
[1 2 3]
[1 2 3]
[3 4 5]
[1 3 5]

二维数组的切片:
x=numpy.array(([1,2,3],[4,5,6]))
print(x[:2,:2])
a=x[:2,:2]
print(a[0][1])

>>>
[[1 2]
 [4 5]]


x=numpy.array([[0,2],[0,4],[5,6]])
x[:2,:1] = [[8],[6]] # 用数组赋值
print (x)

>>>
[[8,2],[6,4],[5,6]]






猜你喜欢

转载自blog.csdn.net/torres_10/article/details/79793923