码迷,mamicode.com
首页 > 其他好文 > 详细

numpy基础一

时间:2018-12-06 20:21:50      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:size   布尔值   填充   bytes   构造   float   结构   形状   numbers   

numpy概览

import numpy as np

array=np.array([1,2,3,4])
array.shape
(4,)

array2=np.array([[1,2,3,4],[2,3,4,1]])
array2.shape
(2, 4)

array3=np.array([[1,2,3,4],[2,3,4,1]])
type(array3)
numpy.ndarray

np.array的结构

1. dtype  数据类型
2. itemsize 占了多少字节
3. shape  形状
4. size  数据个数
5. ndim  维度
6. fill填充
7. 索引和切片


* 要求array里面的数据是同一种类型,如果不是,numpy会转为一种
* int<float<String(取值类型顺序)
import numpy as np
array1=np.array([1,2,3,4])
array1.dtype
# >>>  dtype(‘int32‘)


array2=np.array([1,2,3,4.5])
array2.dtype
#>>>  dtype(‘float64‘)

array3=np.array([1,‘2‘,3,4.5])
array3.dtype
#>>>dtype(‘<U11‘) 


weidu=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu.dtype)
print(weidu.itemsize)
print(weidu.shape)
print(weidu.size)
print(weidu.ndim)

#>>> nt32
#>>> 4
#>>> (3, 3)
#>>> 9
#>>> 2


weidu2=np.array([[1,2,3],[1,3,2],[4,2,1]])
weidu2.fill(0)
print(weidu2)

# >>>
[[0 0 0]
 [0 0 0]
 [0 0 0]]

矩阵格式(多维的形式)

  1. 多维度的取值方式和list不同
  2. nb.array.copy 深度复制
  3. arange(0,100,10) 0到100 , 差值10构造等差数组
  4. 布尔数组作为索引取值
  5. 随机值random.rand(10) 0到1制作10个随机数 生成np数组
weidu3=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu3[1,1])
print(weidu[:,1]) #每一行的第二个数
print(weidu[:,0:2]) #每一行的第一和第二个数
weidu[:,0:2][0,1]

#>>>
3
[2 3 2]
[[1 2]
 [1 3]
 [4 2]]
2



one=np.array([[1,2],[3,4]])
oneCopy=one.copy()
oneCopy[0,1]=100
print(one)
print(oneCopy)



#>>>
[[1 2]
 [3 4]]
[[  1 100]
 [  3   4]]



pan_array=np.array([1,2,3,4,5,6],dtype=np.float32)
print(pan_array)
print(pan_array.dtype)
print(pan_array.nbytes) # 32位 四个字节 * 6 =24B

#>>>
[1. 2. 3. 4. 5. 6.]
float32
24

布尔数组作为索引取值


indexs=np.array([0,1,0,2,0,1,0],dtype=bool)
print(indexs)
numbers=np.array([10,20,30,4,5,7,8])
result=numbers[indexs]  #在索引为true的地方取值
print(result)

#>>>>
[False  True False  True False  True False]
[20  4  7]

随机数转化为布尔值

random_array=np.random.rand(10)
print(random_array)
boolarray=random_array>0.5
print(boolarray)

#>>>
[0.18501146 0.03588    0.04643065 0.88957392 0.15500452 0.49480942
 0.28144087 0.83287192 0.72878256 0.66462199]
[False False False  True False False False  True  True  True]

按条件找到索引

array_index=np.array([1,2,3,4,5,6,8,2,1,3,11,6,8,12])
result=np.where(array_index > 8)
print(result)
print(array_index[np.where(array_index > 8)])

#>>>
(array([10, 13], dtype=int64),)
[11 12]


np.asarray 重新给np.array指定数值类型---深度copy

pan_int32=np.array([1,2,3],dtype=np.int32)
pan_float32=np.asarray(pan_int32,dtype=np.float32)
print(pan_float32)
print(pan_int32)

numpy基础一

标签:size   布尔值   填充   bytes   构造   float   结构   形状   numbers   

原文地址:https://www.cnblogs.com/panfengde/p/10078084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!