【Numpy】Array数组

import numpy as np

In [16]:

list=[1,2,3,4,5]
array = np.array(list)
array
# 会自动做向下转换,type类型全转换掉,如果有一个为string串,其他的都会转换成串

Out[16]:

array([1, 2, 3, 4, 5])

对于ndarray结构来说,里面所有的元素必须是同一类型的,如果不是的话会自动向下进行转换

In [12]:

type(array)

Out[12]:

numpy.ndarray

In [13]:

array.dtype

Out[13]:

dtype('<U11')

In [17]:

array.itemsize

Out[17]:

4​

In [18]:

array.shape
#维度是多少行多少列

Out[18]:

(5,)

In [19]:

array.size
#里边有多少个元素

Out[19]:

5

In [20]:

array.ndim
#是几维的

Out[20]:

1

In [22]:

# 填充值
array.fill(0)
array

Out[22]:

array([0, 0, 0, 0, 0])

索引与切片:跟python一样

In [23]:

list=[1,2,3,4,5]
array = np.array(list)
array
array[0]

Out[23]:

1

In [24]:

array[1:3]

Out[24]:

array([2, 3])

In [25]:

array[-2:]

Out[25]:

array([4, 5])

矩阵格式(多维的形式)

In [27]:

array = np.array([[1,2,3],

                [4,5,6],
                [7,8,9]])
array

Out[27]:

array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

In [28]:

array.shape

Out[28]:

(3, 3)

In [29]:

array.size

Out[29]:

9

In [30]:

array.ndim

Out[30]:

2

In [31]:

array[1,1]

Out[31]:

5

In [32]:

array[1,1]=10
array

Out[32]:

array([[ 1,  2,  3],
       [ 4, 10,  6],
       [ 7,  8,  9]])

In [33]:

#取第二行值
array[1]

Out[33]:

array([ 4, 10,  6])

In [34]:

#取一列
array[:,1]

Out[34]:

array([ 2, 10,  8])

In [37]:

#第0行的0,1两个
array[0,0:2]

Out[37]:

array([1, 2])

 
 
(array2=array)执行赋值的时候,array2不是重新分配内存,而是array2指向array
但是使用array.copy()就是重新分内存

In [38]:

 
 
array2=array
array2

Out[38]:

array([[ 1,  2,  3],
       [ 4, 10,  6],
       [ 7,  8,  9]])

In [ ]:

In [39]:

array2[1,1]=100
array2

Out[39]:

array([[  1,   2,   3],
       [  4, 100,   6],
       [  7,   8,   9]])

In [40]:

array

Out[40]:

array([[  1,   2,   3],
       [  4, 100,   6],
       [  7,   8,   9]])

In [42]:

array3=array.copy()
array3[1,1]=1000
array

Out[42]:

array([[  1,   2,   3],
       [  4, 100,   6],
       [  7,   8,   9]])

 
 
等差数组,从0 到100,不包括100,步长为10

In [43]:

array = np.arange(0,100,10)
array

Out[43]:

array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])

对应值,array和mask对应,mask当索引

In [49]:

mask = np.array([0,0,0,1,1,1,0,1,0,9],dtype=bool)
mask

Out[49]:

array([False, False, False,  True,  True,  True, False,  True, False,
        True])

In [50]:

array[mask]

Out[50]:

array([30, 40, 50, 70, 90])

让大于0.5的随机数返回出来 

In [52]:

 
 
random_array = np.random.rand(10)
random_array

Out[52]:

array([0.07269206, 0.30767692, 0.87505875, 0.40279648, 0.45689306,
       0.98875781, 0.98477825, 0.30104307, 0.03657114, 0.39355438])

In [54]:

mask = random_array > 0.5
mask

Out[54]:

array([False, False,  True, False, False,  True,  True, False, False,
       False])

In [55]:

random_array[mask]

Out[55]:

array([0.87505875, 0.98875781, 0.98477825])

In [56]:

# 找到大于0.5的位置
np.where(random_array > 0.5)

Out[56]:

(array([2, 5, 6], dtype=int64),)

In [58]:

random_array[np.where(random_array > 0.5)]

Out[58]:

array([0.87505875, 0.98875781, 0.98477825])

In [ ]:

In [59]:

array = np.array([1,2,3,4,5],dtype=np.float32)
array

Out[59]:

array([1., 2., 3., 4., 5.], dtype=float32)

In [60]:

 
 
array.dtype

Out[60]:

dtype('float32')

In [61]:

#所占字节
array.nbytes

Out[61]:

20

In [64]:

# 里边什么类型都有,使用object类型
array = np.array([1,3.5,10,'str'],dtype=object)
array

Out[64]:

array([1, 3.5, 10, 'str'], dtype=object)

In [65]:

array*2

Out[65]:

array([2, 7.0, 20, 'strstr'], dtype=object)

In [79]:

# asarray重新指定dtype,全换成字符串
np.asarray(array,dtype = np.ndarray)

Out[79]:

array(['1', '3.5', '10', 'str'], dtype=object)

In [85]:

# 不会影响原始的,改变的是asarray生成的东西
array = np.array([1,2,3,4],dtype = int)
array2 = np.asarray(array,dtype = np.float32)
array2
array

Out[85]:

arra
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值