Numpy知识点总结
-
Numpy数组ndarray对象与python里面列表list最大的区别:
ndarray里面只能存储相同类型的元素
list对象能存储不同类型的元素
1. ndarray.ndim #维度个数,一维 二维 三维 2. ndarray.shape(n,m) #数组的形状n行m列 3. ndarray.size #元素的个数 4. ndarray.dtype #数组的类型 5. ndarray.itemsize #每个元素字节的大小
-
zeros 、 ones 、 empty
1. c = np.zeros((3,4)) c Out[26]: array([[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]) 2. d = np.ones((5,6)) d Out[28]: array([[1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.], [1., 1., 1., 1., 1., 1.]]) 3. d.dtype Out[31]: dtype('float64') 4. np.empty((2,3)) Out[29]: array([[6.23042070e-307, 1.89146896e-307, 1.37961302e-306], [6.23053614e-307, 6.23053954e-307, 1.24611470e-306]]) 5. np.arange(1,11,2) Out[30]: array([1, 3, 5, 7, 9])
-
Numpy里面常用的数据类型
-
数据类型的特征码
b
array([[1, 2, 3],
[4, 5, 6]])
b.dtype
dtype('int32')
new_b = b.astype(np.string_)
new_b.dtype
dtype('S11')
new_b
array([[b'1', b'2', b'3'],
[b'4', b'5', b'6']], dtype='|S11')
new_b = b.astype(np.float32)
new_b
array([[1., 2., 3.],
[4., 5., 6.]], dtype=float32)
-
数组运算的三种方式
6.ndarray的索引和切片的使用
一维数组和python类似
二维数组:
7.布尔索引的基本使用
import numpy as np
a = np.arange(16).reshape(4,4)
a
>>>array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
arr = np.array([True,False,False,True])
a[arr]
>>>array([[ 0, 1, 2, 3],
[12, 13, 14, 15]])
8.数组的转置和轴对称
T属性转置: #二维,将原有的行变为列,列变为行
#三维(0,1,2)-->(2,1,0)逆置
a
>>>array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
b=a.T
b
>>>array([[ 0, 4, 8, 12],
[ 1, 5, 9, 13],
[ 2, 6, 10, 14],
[ 3, 7, 11, 15]])
transpose()方法转置:
c = a.reshape(4,2,2)
c
>>>array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15]]])
c.transpose()
>>>array([[[ 0, 4, 8, 12],
[ 2, 6, 10, 14]],
[[ 1, 5, 9, 13],
swapaxes转置:
c
>>>array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[ 8, 9],
[10, 11]],
[[12, 13],
[14, 15]]])
c.shape
>>>(4, 2, 2)
c.swapaxes(0,2)
>>>array([[[ 0, 4, 8, 12],
[ 2, 6, 10, 14]],
[[ 1, 5, 9, 13],
9.Numpy通用函数(ufunc)
一元通用函数:
二元通用函数:
10.将条件逻辑转化为数组运算
where
-
np.where(a,b,c)
条件a为True则返回b,否则返回c
数组统计运算
和排序相关的函数sort()函数:
a= np.array([[2,3,1],[6,5,4],[7,9,8]])
a
>>>array([[2, 3, 1],
[6, 5, 4],
[7, 9, 8]])
a.sort() #对数组a本身进行了排序
a
>>>array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
检查函数all()
a
>>>array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
np.all(a>1)
>>>False
唯一化函数unique() (去重)
a = np.array([1,1,2,2,3,3,4,5,6,7,7,8,8,9,9])
np.unique(a)
>>>array([1, 2, 3, 4, 5, 6, 7, 8, 9])
一个数组的元素在另一个数组是否存在用 in1d() 函数
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
b=np.array([1,5,9])
np.in1d(a,b)
>>>array([ True, False, False, False, True, False, False, False, True])
其他函数:
作者:王韩六六
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.