day1-2-Numpy数组相关操作
In [2]:
import numpy as np
In [3]:
array = [1,2,3,4,5] #定义数组
In [4]:
array
Out[4]:
[1, 2, 3, 4, 5]
In [5]:
array1=np.array([1,2,3,4,5,6])
In [6]:
type(array1) #获取数据类型
Out[6]:
numpy.ndarray
In [7]:
num1=1
In [8]:
type(num1)
Out[8]:
int
In [9]:
array1.dtype #获取数组元素的数据类型
Out[9]:
dtype('int32')
In [10]:
array1.itemsize #获取数元素组字节数
Out[10]:
4
In [11]:
array1.shape
Out[11]:
(6,)
In [12]:
array1.size #数组大小
Out[12]:
6
In [13]:
np.shape(array1)
Out[13]:
(6,)
In [14]:
array1.ndim #数组维度
Out[14]:
1
In [15]:
array1.fill(0) #将数组所有元素初始化为0
print(array1)
[0 0 0 0 0 0]
In [16]:
array1[0]
Out[16]:
0
In [17]:
array1=[1,2,3,4,5]
In [18]:
array1[1:3] #从下标1开始取数据,取到下标3
Out[18]:
[2, 3]
In [19]:
array1[-4:] #从倒数第四个开始取 ,取到最后一个
Out[19]:
[2, 3, 4, 5]
In [20]:
array2=np.array([[[1,2,3],[11,55,66]],[[100,102,103],[111,155,166]]])
In [21]:
array2.shape
Out[21]:
(2, 2, 3)
In [22]:
array2.size #2*2*3
Out[22]:
12
In [23]:
array2.ndim
Out[23]:
3
In [24]:
print(array2[1,1,1])
155
In [25]:
array2[1,1,1]=156
In [26]:
array2
Out[26]:
array([[[ 1, 2, 3],
[ 11, 55, 66]],
[[100, 102, 103],
[111, 156, 166]]])
In [27]:
array2[:,1,1] #取第一维度所有,取第二维度下标为1的数据,取第三维度下标为1的数据
Out[27]:
array([ 55, 156])
In [28]:
array2[:,:,0] #取第一维度所有,取第二维度所有,取第三维度第0元素
Out[28]:
array([[ 1, 11],
[100, 111]])
In [29]:
array3=array2.copy() #将array2数组复制到array3中
print(array3)
[[[ 1 2 3] [ 11 55 66]] [[100 102 103] [111 156 166]]]
In [30]:
array2[0,0,0]=10086 #修改array2中数据,不会对array3中数据造成影响
In [31]:
print(array2,'\n#############################################\n',array3)
[[[10086 2 3] [ 11 55 66]] [[ 100 102 103] [ 111 156 166]]] ############################################# [[[ 1 2 3] [ 11 55 66]] [[100 102 103] [111 156 166]]]
In [32]:
array4=np.arange(0,10,1) #取0-10之间不包过10 1为步长的数据
print(array4)
[0 1 2 3 4 5 6 7 8 9]
In [33]:
mask=np.array([1,1,1,0,0,0,0,0,0,0],dtype=bool) #数组由布尔类型的元素组成,默认将int类型转换为布尔类型
print(mask)
[ True True True False False False False False False False]
In [34]:
array4[mask] #获取array4中 与mask为true的数据,数据必须一一对应
Out[34]:
array([0, 1, 2])
In [35]:
randomArray=np.random.rand(10) #取随机数10个
print(randomArray)
[0.50319703 0.33021724 0.46541281 0.36555992 0.39384576 0.20101006 0.38995084 0.60360763 0.28220682 0.14589713]
In [36]:
mask=randomArray>0.5
mask
Out[36]:
array([ True, False, False, False, False, False, False, True, False,
False])
In [37]:
randomArray[mask] #打印大于0.5的数据
Out[37]:
array([0.50319703, 0.60360763])
In [38]:
array1=array1+8
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-995782a78cad> in <module>
----> 1 array1=array1+8
TypeError: can only concatenate list (not "int") to list
In [39]:
array1=np.array(array1)
array1
Out[39]:
array([1, 2, 3, 4, 5])
In [40]:
np.where(array1>11) #取数组中大于11的元素位置
Out[40]:
(array([], dtype=int64),)
In [48]:
array5=np.array([1,2,3,4,5],dtype=np.float) #将数组转换为numpy.float类型
print(array5)
array5.dtype
print(array5.nbytes)
[1. 2. 3. 4. 5.] 40
In [54]:
array6=np.array([1,2,3,'apple',1.3],dtype=np.object) #存在多种数据类型时,指定numpy.object类型
print(array6)
array6.dtype
print(array6.nbytes)
array6
[1 2 3 'apple' 1.3] 40
Out[54]:
array([1, 2, 3, 'apple', 1.3], dtype=object)
In [55]:
array6*2 #全元素*2
Out[55]:
array([2, 4, 6, 'appleapple', 2.6], dtype=object)
In [61]:
array7=np.array([1,2,3,4,5])
array8=np.asarray(array7,dtype=np.float)
array8
Out[61]:
array([1., 2., 3., 4., 5.])
In [64]:
array9=array7.astype(np.float) #将array7中的数据类型转换为float类型
array9
Out[64]:
array([1., 2., 3., 4., 5.])

浙公网安备 33010602011771号