① python基础之numpy.reshape详解
这个方法是在不改变数据内容的情况下,改变一个数组的格式,参数及返回值,官网介绍:
a:数组--需要处理的数据
newshape:新的格式--整数或整数数组,如(2,3)表示2行3列,新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量
order:
首先做出翻译: order : 可选范围为{‘C’, ‘F’, ‘A’}。使用索引顺序读取a的元素,并按照索引顺序将元素放到变换后的的数组中。如果不进行order参数的设置,默认参数为C。
(1)“C”指的是用类C写的读/索引顺序的元素,最后一个维度变化最快,第一个维度变化最慢。以二维数组为例,简单来讲就是横着读,横着写,优先读/写一行。
(2)“F”是指用FORTRAN类索引顺序读/写元素,最后一个维度变化最慢,第一个维度变化最快。竖着读,竖着写,优先读/写一列。注意,“C”和“F”选项不考虑底层数组的内存布局,只引用索引的顺序。
(3)“A”选项所生成的数组的效果与原数组a的数据存储方式有关,如果数据是按照FORTRAN存储的话,它的生成效果与”F“相同,否则与“C”相同。这里可能听起来有点模糊,下面会给出示例。
二、示例解释
1、首先随机生成一个4行3列的数组
2、使用reshape,这里有两种使用方法,可以使用np.reshape(r,(-1,1),order='F'),也可以使用r1=r.reshape((-1,1),order='F'),这里我选择使用第二种方法。通过示例可以观察不同的order参数效果。
通过例子可以看出来,F是优先对列信息进行操作,而C是优先行信息操作。如果未对r的格式进行设置,那么我们rashape的时候以“A”的顺序进行order的话,它的效果和“C”相同。
3、我们将r的存储方式进行修改,修改为类Fortan的方式进行存储。并做与第2步类似的操作。
基础操作样例:
1.引入numpy,名称为np
2.接下来创建一个数组a,可以看到这是一个一维的数组
3.使用reshape()方法来更改数组的形状,可以看到看数组d成为了一个二维数组
4.通过reshape生成的新数组和原始数组公用一个内存,也就是说,假如更改一个数组的元素,另一个数组也将发生改变
5.同理还可以得到一个三维数组
reshape(-1,1)什么意思:
大意是说,数组新的shape属性应该要与原来的配套,如果等于-1的话,那么Numpy会根据剩下的维度计算出数组的另外一个shape属性值。
举例:
同理,只给定行数,newshape等于-1,Numpy也可以自动计算出新数组的列数。
② python 原来需要输入值给数组怎么改成直接给数组赋值啊,就是弄成像图二那样的
1.首先,你要弄懂别人在干嘛
③ Python中怎样对数组中的值进行选择性,调换位置的输出。例如:a,b,c,d,e,f.输出成为a,c,f,e.
#调换谈拆位置的输出
stin = ['A','B','C','D','E','F','G','乎侍键H','I','X']
inp = input('enter the sort:')
def change(pa):
file = open("D:\dir\a.txt","a")
pas = pa.split(',');
print(pas)
for i in pas:
print(stin[int(i)],end=" "岁巧)
file.write(stin[int(i)]+" ")
file.close()
change(inp)
在D盘创建D:\dir\a.txt 查看输出
刚刚玩这个东西,期待高手指点
④ python用for循环怎么给给数组赋值
思路:先定义一个数组(列表类型)出来,然后直接循环即可(需要用到列表的append函数),举例代码如下:
result_t = []
for i in range(1,5):
t = i
result_t.append(t)
⑤ Python中数组的基本操作
先定义一个数组列表:
列表合并也可以用+,但是用+的话,会产生一个新的列表(当然也可以赋值给任何的变量),而extend则只是修改了原来的对象
只读数组,只能查看不能编辑,列表的切片操作同样适于元组。
表达方式:tuple=("元素1","元素2","元素3"),中间同样用,隔开
特殊的元组:tupleZero=()空元组
tupleOne=("元素1",) 只有一个元素,后面要跟一个,(注意好的习惯的养成)
作用:1.对于一些不想被修改的元素,可以放在元组里面
2.元组可以在映射(和集合的成员)中当作键使用,而列表不行
3.元组作为内建函数和方法的返回值
enumerate(列表对象,返回标签起始值(默认为零))
上面的例子可以看出,返回的i是一个元组,如果不想要元组的话,可以用两个参数接收:
⑥ Python数组修改问题
a=[[0 ,0 ,40 ,60 ,255 ,255 ,255 ,255 ,255 ,255],
[1 ,0 ,48 ,68 ,255 ,255 ,255 ,255 ,255 ,255],
[2 ,0 ,38 ,66 ,255 ,255 ,255 ,255 ,255 ,255],
[3 ,0 ,39 ,80 ,255 ,255 ,255 ,255 ,255 ,255],
[4 ,0 ,39 ,67 ,255 ,255 ,255 ,255 ,255 ,255],
[15 ,0 ,20 ,255 ,255 ,255 ,255 ,255 ,255 ,255]]
a = [[s for s in x if s != 255] for x in a]
⑦ python 对一个数组的处理,如题:
defsplit(array):
group=[]
item=[]
forxinarray:
ifx!=0:
item.append(x)
eliflen(item)>0:
group.append(item)
item=[]
iflen(item)>0:
group.append(item)
returngroup
array=[0,2,0,0,34,4,3,2,0,0,0,0,4,2,3,0,0]
split(array)
⑧ python中怎么对一个数组中不同值进行不同操作
python中的list和array的不同之处 list是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算