Numpy初步使用&运行numpy文件&数组的创建&查看 *** 作&文件IO *** 作&数据类型&数组的运算&复制和视图& 索引、切片和迭代&总结(2)

Numpy初步使用&运行numpy文件&数组的创建&查看 *** 作&文件IO *** 作&数据类型&数组的运算&复制和视图& 索引、切片和迭代&总结(2),第1张

文章目录
  • 前言
  • 一、使用说明
    • 1.help
  • 二、运行numpy文件
    • 1.数组的引出
    • 2.numpy数组可一次取多个,而python不行
  • 三、数组的创建
  • 四、查看 *** 作
    • 1.数组的轴数、维度
    • 2.数组尺寸形状
    • 3.数组元素的总数
    • 4.数据类型
    • 5.数组中每个元素的大小(以字节为单位)
  • 五、文件IO *** 作
    • 1.保存数组
    • 2.读取
    • 3. 读写csv、txt文件
  • 六、数据类型
    • 1.array创建时,指定
    • 2.asarray转换时指定
    • 3.数据类型转换astype
  • 七、数组的运算
    • 1.加减乘除幂运算
    • 2.逻辑运算
    • 3.数组与标量计算
    • 4.*=、+=、-= *** 作
  • 八、 复制和视图
    • 1.完全没有复制
    • 2.查看或浅拷贝
    • 3.深拷贝
  • 九、 索引、切片和迭代
    • 1.基本索引和切片
    • 2.二维数组
    • 3.花式索引和索引技巧
    • 4.boolean值索引
  • 十、
  • 总结


前言

python学习笔记—Numpy day6(仅供学习使用)


一、使用说明

#numpy数字化python,用于研究数据
#快捷键执行代码:command+enter 0r shift + enter

1.help

keyboard 是快捷键展示,所有快捷键都可在里面查询

二、运行numpy文件
l = [1,2,3,4,5]
print('打印输出列表:',l)

点击左上角运行按钮即可

1.数组的引出

创建数组的最简单的方法就是使用array函数,将Python下的list转换为ndarray。

2.numpy数组可一次取多个,而python不行


筛选大于等于三的数据:

三、数组的创建
import numpy as np arr1 = np.ones(10) # 输出为:array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) 
arr2 = np.zeros(10) # 输出为: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])
arr3 = np.full(shape = [2,3],fill_value=2.718) # 输出为: # array([[2.718, 2.718, 2.718], # [2.718, 2.718, 2.718]]) 
arr4 = np.arange(start = 0,stop = 20,step = 2) # 等差数列 输出为:array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) 
arr5 = np.linspace(start =0,stop = 9,num = 10) # 等差数列 输出为:array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
arr6 = np.random.randint(0,100,size = 10) # int随机数 输出为:array([ 4, 8, 79, 62, 34, 35, 2, 65, 47, 18]) 
arr7 = np.random.randn(5) # 正态分布 输出为:array([ 0.57807872, 0.37922855, 2.37936837, -0.28688769, 0.2882854 ])  
arr8 = np.random.random(size = 5) # float 随机数 输出为:array([0.59646412, 0.37960586, 0.38077327, 0.76983539, 0.22689201])
四、查看 *** 作
jupyter扩展插件(不安装)
pip3 install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install jupyter_nbextensions_configurator -i https://pypi.tuna.tsinghua.edu.cn/simple
jupyter contrib nbextension install --user
jupyter nbextensions_configurator enable --user
退出,重新进入jupyter notebook就可以了
1.数组的轴数、维度
import numpy as np 
arr = np.random.randint(0,100,size = (3,4,5)) 
arr.ndim # 输出 3
2.数组尺寸形状
arr.shape # 输出 (3,4,5)
3.数组元素的总数

arr.size # 输出 345 = 60

4.数据类型

arr.dtype # 输出 dtype(‘int64’)

5.数组中每个元素的大小(以字节为单位)

arr.itemsize #输出是 8 ,因为数据类型是int64,64位,一个字节是8位,所以64/8 = 8

五、文件IO *** 作 1.保存数组

save方法保存ndarray到一个npy文件,也可以使用savez将多个array保存到一个.npz文件中

x = np.random.randn(5)
y = np.arange(0,10,1)
#save方法可以存一个ndarray
np.save("x_arr",x)
#如果要存多个数组,要是用savez方法,保存时以key-value形式保存,key任意(xarr、yarr)
np.savez("some_array.npz",xarr = x,yarr=y)
2.读取

load方法来读取存储的数组,如果是.npz文件的话,读取之后相当于形成了一个key-value类型的变量,
通过保存时定义的key来获取相应的array

np.load('x_arr.npy') # 直接加载
# 通过key获取保存的数组数据 
np.load('some_array.npz')['yarr']
3. 读写csv、txt文件
arr = np.random.randint(0,10,size = (3,4)) 
#储存数组到txt文件 
np.savetxt("arr.csv",arr,delimiter=',') # 文件后缀是txt也是一样的 
#读取txt文件,delimiter为分隔符,dtype为数据类型 
np.loadtxt("arr.csv",delimiter=',',dtype=np.int32)
六、数据类型

ndarray的数据类型:
int: int8、uint8、int16、int32、int64
float: float16、float32、float64
str
其中uint8代表着无符号数。

1.array创建时,指定
import numpy as np 
np.array([1,2,5,8,2],dtype = 'float32') 
# 输出 :array([1., 2., 5., 8., 2.], dtype=float32)
2.asarray转换时指定
import numpy as np 
arr = [1,3,5,7,2,9,0] 
# asarray 将列表进行变换 
np.asarray(arr,dtype = 'float32') 
# 输出:array([1., 3., 5., 7., 2., 9., 0.], dtype=float32)
3.数据类型转换astype
import numpy as np 
arr = np.random.randint(0,10,size = 5,dtype = 'int16') 
# 输出:array([6, 6, 6, 6, 3], dtype=int16) 
# 使用astype进行转换 
arr.astype('float32') 
# 输出:array([1., 4., 0., 6., 6.], dtype=float32)
七、数组的运算 1.加减乘除幂运算

2.逻辑运算

3.数组与标量计算

数组与标量的算术运算也会将标量值传播到各个元素

4.*=、+=、-= *** 作

某些 *** 作(例如+=和*=)只会修改现有数组,而不是创建一个新数组。

不支持/= ,但是支持//= ,//=的含义就是除的意思。

八、 复制和视图

在 *** 作数组时,有时会将其数据复制到新数组中,有时不复制。
对于初学者来说,这通常会引起混乱。有以下三种情况

1.完全没有复制

2.查看或浅拷贝

不同的数组对象可以共享相同的数据。该view方法创建一个查看相同数据的新数组对象

3.深拷贝


copy应该在不再需要原来的数组情况下,切片后调用。例如,假设a是一个巨大的中间结果,而最
终结果b仅包含的一小部分a,则在b使用切片进行构造时应制作一个深拷贝:

九、 索引、切片和迭代 1.基本索引和切片

numpy中数组切片是原始数组的视图,这意味着数据不会被复制,视图上任何数据的修改都会反映到原数组上

2.二维数组

对于二维数组或者高维数组,我们可以按照之前的知识来索引,当然也可以传入一个以逗号隔开的索引列表来选区单个或多个元素

3.花式索引和索引技巧

整数数组进行索引即花式索引,其和切片不一样,它总是将数据复制到新数组中

4.boolean值索引


在np中,或运算用 ‘|’

十、
总结

在pycharm中也可以运行

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/738046.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存