1.如何导入数据与不同类型的文件转换成一个Python numpy的数组
不太懂你想做什么,如果要转换成numpy数组的话,就把要转换的数据全都弄成list类型,然后使用numpy.asarray(list_name)转换。
#eg.
import numpy as np
a = [1,2,3,4,5]
b = [6,7,8,9,0]
c = a + b
d = np.asarray(c)
d
#输出array([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
2.python怎么实现矩阵的转置
需求:
你需要转置一个二维数组,将行列互换.
讨论:
你需要确保该数组的行列数都是相同的.比如:
arr = [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
列表递推式提供了一个简便的矩阵转置的方法:
print [[r[col] for r in arr] for col in range(len(arr[0]))]
[[1, 4, 7, 10], [2, 5, 8, 11],[3, 6, 9, 12]]
另一个更快和高级一些的方法,可以使用zip函数:
print map(list,
zip(*arr))
本节提供了关于矩阵转置的两个方法,一个比较清晰简单,另一个比较快速但有些隐晦.
有时候,数据到来的时候使用错误的方式,比如,你使用微软的ADO接口访问数据库,由于Python和MS在语言实现上的差别.
Getrows方法在Python中可能返回的是列值,和方法的名称不同.本节给的出的方法就是这个问题常见的解决方案,一个更清晰,一个更快速.
在列表递推式版本中,内层递推式表示选则什么(行),外层递推式表示选择者(列).这个过程完成后就实现了转置.
在zip版本中,我们使用*arr语法将一维数组传递给zip做为参数,接着,zip返回一个元组做为结果.然后我们对每一个元组使用list方法,产生了列表的列表(即矩阵).因为我们没有直接将zip的结果表示为list,
所以我们可以我们可以使用itertools.izip来稍微的提高效率(因为izip并没有将数据在内存中组织为列表).
import itertools
print map(list,
itertools.izip(*arr))
但是,在特定的情况下,上面的方法对效率的微弱提升不能弥补对复杂度的增加.
关于*args和**kwds语法:
*args(实际上,*号后面跟着变量名)语法在Python中表示传递任意的位置变量,当你使用这个语法的时候(比如,你在定义函数时使用),Python将这个变量和一个元组绑定,并保留所有的位置信息,
而不是具体的变量.当你使用这个方法传递参数时,变量可以是任意的可迭代对象(其实可以是任何表达式,只要返回值是迭代器).
**kwds语法在Python中用于接收命名参数.当你用这个方式传递参数时,Python将变量和一个dict绑定,保留所有命名参数,而不是具体的变量值.当你传递参数时,变量必须是dict类型(或者是返回值为dict类型的表达式).
如果你要转置很大的数组,使用Numeric Python或其它第三方包,它们定义了很多方法,足够让你头晕的.
相关说明:
zip(。)
zip(seq1 [,
seq2 [。]]) ->[(seq1[0], seq2[0] 。),
(。)]
Return a
list of tuples, where each tuple contains the i-th element
from each of
the argument sequences. The returned list is truncated
in length to
the length of the shortest argument sequence.
如果解决了您的问题请采纳!
如果未解决请继续追问
3.如何将numpy数组转换为(并显示)图片
用python显示一张图片方法如下:
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as nplena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png# 此时 lena 就已经是一个 np.array 了,可以对它进行任意处理
lena.shape #(512, 512, 3)plt.imshow(lena) # 显示图片plt.axis('off') # 不显示坐标轴
plt.show()
Python, 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。
Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
4.python中怎样让数据列转置
需求:你需要转置一个二维数组,将行列互换.讨论:你需要确保该数组的行列数都是相同的.比如:arr = [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]列表递推式提供了一个简便的矩阵转置的方法:print [[r[col] for r in arr] for col in range(len(arr[0]))][[1, 4, 7, 10], [2, 5, 8, 11],[3, 6, 9, 12]]另一个更快和高级一些的方法,可以使用zip函数:print map(list,zip(*arr))本节提供了关于矩阵转置的两个方法,一个比较清晰简单,另一个比较快速但有些隐晦.有时候,数据到来的时候使用错误的方式,比如,你使用微软的ADO接口访问数据库,由于Python和MS在语言实现上的差别.Getrows方法在Python中可能返回的是列值,和方法的名称不同.本节给的出的方法就是这个问题常见的解决方案,一个更清晰,一个更快速.在列表递推式版本中,内层递推式表示选则什么(行),外层递推式表示选择者(列).这个过程完成后就实现了转置.在zip版本中,我们使用*arr语法将一维数组传递给zip做为参数,接着,zip返回一个元组做为结果.然后我们对每一个元组使用list方法,产生了列表的列表(即矩阵).因为我们没有直接将zip的结果表示为list,所以我们可以我们可以使用itertools.izip来稍微的提高效率(因为izip并没有将数据在内存中组织为列表).import itertoolsprint map(list,itertools.izip(*arr))但是,在特定的情况下,上面的方法对效率的微弱提升不能弥补对复杂度的增加.关于*args和**kwds语法:*args(实际上,*号后面跟着变量名)语法在Python中表示传递任意的位置变量,当你使用这个语法的时候(比如,你在定义函数时使用),Python将这个变量和一个元组绑定,并保留所有的位置信息,而不是具体的变量.当你使用这个方法传递参数时,变量可以是任意的可迭代对象(其实可以是任何表达式,只要返回值是迭代器).**kwds语法在Python中用于接收命名参数.当你用这个方式传递参数时,Python将变量和一个dict绑定,保留所有命名参数,而不是具体的变量值.当你传递参数时,变量必须是dict类型(或者是返回值为dict类型的表达式).如果你要转置很大的数组,使用Numeric Python或其它第三方包,它们定义了很多方法,足够让你头晕的.相关说明:zip(。
)zip(seq1 [,seq2 [。]]) -> [(seq1[0], seq2[0] 。
),(。)]Return alist of tuples, where each tuple contains the i-th elementfrom each ofthe argument sequences. The returned list is truncatedin length tothe length of the shortest argument sequence.。
5.如何用python实现行列互换
用excel的话建议用pandas
import pandas as pd
df = pd.read_excel('你的文件路径','第几个sheet', header = false) #读取文件 比如 df = pd.read_excel('c:/your_data.xlsx',0, header = false)
df_t = df.t #获得矩阵的转置
df_t.to_excel('要保存的文件路径', sheet_name='我的表名') #保存文件 比如 df_t.to_excel('c:/test.xlsx', sheet_name='sheet 1')
保存的文件之前的title都还在,winpython直接解压就可以使用,里面要使用的包都有
6.python怎么将数组转换为矩阵
python将数组转换为矩阵,方法如下:数组转换矩阵: A = mat(s[]) Python的定义:Python是一种面向对象、直译式计算机程序设计语言,Python语法简捷而清晰,具有丰富和强大的类库。
它常被为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。
比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
7.python如何将2个相等长度的数组转化为矩阵
>>> a = [1,2,3,4,5]>>> b = [6,7,8,9,10]>>> zip(a, b)[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]>>> import numpy>>> a = [1,2,3,4,5]>>> b = [6,7,8,9,10]>>> zip(a, b)[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]>>> c = numpy.array(zip(a, b))>>> carray([[ 1, 6],[ 2, 7],[ 3, 8],[ 4, 9],[ 5, 10]])>>>。
转载请注明出处编程代码网 » pythonnumpy数组转置(如何导入数据与不同类型的文件转换成一个Pythonnumpy的数组)